2023년 8월 20일 작성

SVG - Website 접근성을 높이는 SVG

SVG는 Website의 접근성을 높이는 데 도움이 됩니다.

SVG의 Website 접근성

  • 그림(image), 소리(sound), 문자(text), 상호작용(interaction) 등의 매체(multimedia)는 사용자가 이해하기 쉽게 정보를 간소화하고 분명하게 만들어 전달하기 때문에 그 자체로 접근성이 좋습니다.
  • 그러나 그림이나 문자 같은 그려진 내용(rendered contents)는 비가시적 장치(non-visual device) 사용자에 대한 접근성이 매우 떨어집니다.
    • 예를 들어, 시각 장애인과 같이 audio 장치만 사용할 수 있는 환경의 사용자는 그림으로부터 정보를 얻을 수 없습니다.
  • 따라서 Web 개발자와 contents 작성자는 원본과 동일한 수준의 대안(alternative equivalent)을 제공하여 정보를 전달받을 수 있도록 해야 합니다.
  • SVG는 alternative equivalent로써 여러 가지 metadata를 포함하고 있기 때문에, SVG의 사용은 접근성을 높입니다.

SVG의 특징 1 : Vector Graphic

  • SVG는 vector로 그려지며, 따라서 raster image(pixel image)의 단점을 가지지 않습니다.

확대해도 깨지지 않는(Scalable) SVG

  • SVG는 Vector graphic이기 때문에 수만배 확대하여도 깨지지 않습니다.
  • 시력이 낮은 사용자가 화면을 확대해도 선명한 image를 그대로 볼 수 있습니다.
    • pixel 기반의 image는 확대했을 때, 계단이 생기거나 선명도가 떨어집니다.
  • 위의 SVG로 그린 원을 크게 확대해도 선명함이 유지됩니다.

구조(Structure)를 가지는 SVG

  • SVG는 구조 정보(structural information)를 가지고 있습니다.
  SVG PNG
Image의 요소 Vector Pixel
그리는 방법 여러 개의 vector graphic component를 만들고 component들을 조합하여 하나의 SVG를 그립니다. 각 pixel에 색상값을 설정하여 PNG를 그립니다.
구조 정보의 유무 SVG는 구조 정보를 가지고 있습니다.
SVG를 구성하는 vector graphic component들의 역할과 배치, vector graphic component를 구성하는 path, color 등의 정보로 전체 image의 구조적인 특징을 설명할 수 있습니다.
PNG는 구조 정보를 가지고 있지 않습니다.
각 좌표의 pixel이 어떤 색상값을 가졌는지만 알 수 있으며, pixel들의 색상값만으로는 구조적인 특징을 설명할 수 없습니다.

SVG의 특징 2 : XML

  • SVG는 Web graphic을 생성하기 위한 XML(eXtensible Markup Language) application입니다.

일반 문자(Plain Text)로 작성되는 SVG

  • SVG는 XML application이기 때문에 plain text로 작성됩니다.
  • text 기반이기 때문에 작성자는 text editor나 XML 작성 도구를 사용하여 image를 쉽게 수정할 수 있습니다.
    • Web design tool들은 대부분이 text editor에 기능을 추가한 것이며, 이는 어떤 design tool에서든 SVG의 수정이 가능하다는 것을 의미합니다.
    • SVG editor나 SVG plugin을 사용하면 SVG를 더 쉽게 수정할 수 있습니다.

자유롭게 꾸밀 수 있는(Stylable) SVG

  • XML로 작성된 모든 markup 문서는 CSS와 XSL style sheet를 사용하여 꾸밀 수 있으며, 따라서 SVG도 style 수정이 가능합니다.
    • CSS를 사용할 수 있기 때문에 CSS에 정의된 수많은 style 속성을 사용하여 SVG를 꾸밀 수 있습니다.
    • 저시력(low vision), 색맹(color deficiencies) 등 보조 기술(assistive technology)이 필요한 사용자를 위한 CSS Style을 SVG Image에도 그대로 적용할 수 있습니다.

DOM Interface를 사용할 수 있는 SVG

  • SVG는 XML 기반 DOM(Document Object Model)을 사용할 수 있습니다.
  • DOM interface는 접근성 높은(accessible) 상호작용(interaction)의 추가가 가능하기 때문에, SVG에 여러 보조 기술(assistive technology)을 지원하는 것이 가능합니다.

다른 XML 언어와 호환 가능한 SVG

  • 다른 XML 언어로 작성된 문서에 SVG 문서를 포함하는 것이 가능합니다.
  • 반대로 SVG 문서가 다른 XML 언어로 작성된 markup을 포함하는 것도 가능합니다.
  • markup 언어를 섞어 쓸 수 있기 때문에, 문서의 각 부분에 가장 적합한 markup 언어를 사용할 수 있으며, 이는 접근성을 높이는 요소입니다.
    • 예를 들어, HTML 문서에서 SVG를 사용하여 도형과 문자를 그릴 수 있습니다.
    • 예를 들어, MathML 문서에서 SVG를 사용하여 방정식을 배치하고 graph를 그릴 수 있습니다.

Reference


목차