SVG 접근성
SVG1.1 접근성 지원은 브라우저와 스크린 리더에서 제한적 입니다. SVG2 로 상황이 개선 될 예정 이지만 ARIA 를 사용하여 간단한 SVG의 접근성을 향상시킬 수 있습니다.
SVG 1.1 접근성
SVG 그래픽에 접근성을 제공할 수 있는 <title>
, <desc>
요소를 제공합니다. 설정된 <title>
, <desc>
요소는 브라우저 접근성 API에 접근 가능한 이름과 설명으로 각각 매핑(Mapping) 됩니다.
SVG 접근성 브라우저 지원
<title>
, <desc>
요소 브라우저 접근성 API 매핑 테스트 결과
ARIA + SVG 접근성 향상
SVG 역할(role)을 명확히 제공해야 스크린리더는 이를 정확하게 식별 할 수 있습니다. WAI-ARIA의 role
, aria-labelledby
속성을 사용하여 브라우저 접근성 API에 보다 명확한 정보를 제공할 수 있습니다.
img 역할
인라인 <svg>
요소에 role
속성 값으로 img
를 설정하면 그래픽으로 식별됩니다.
aria-labelledby 속성
<title>
, <desc>
요소에 부여된 id
속성 값 이름을 참조하여 보다 구체적인 정보를 제공할 수 있습니다.
presentation 역할
presentation 역할이 부여된 요소는 브라우저 접근성 API에 매핑 되지 않아 정보를 제공하지 않습니다. 의미가 없는 표현(장식)적인 요소에 사용해야 합니다. 그리고 포함된 하위 요소들까지 모두 정보를 제공하지 않습니다.
[WAI-ARIA 1.1] none 역할에 관한 참고 사항
ARIA 1.1 워킹 그룹은 그룹원 간에 "presentation" 또는 "presentational" 단어의 의미를 둘러싼 혼란이 야기되어 none을 presentation의 동의어로 도입하였습니다. 많은 사람들이 role="presentation"을 aria-hidden="true"의 동의어로 잘못 생각하고 있습니다. 우리 role="none"이 실제 의미를 보다 명확하게 전달한다고 믿습니다. 웹 제작자는 role="none"에 대한 지원이 충분 해질 때까지 presentation 역할만 사용하거나, role="none presentation"을 사용하길 권합니다.
ARIA + SVG 브라우저 지원
role
, aria-labelledby
브라우저 접근성 API 매핑 테스트 결과
SVG 텍스트 접근성
<text>
요소의 콘텐츠 접근에 아무런 문제가 없습니다.
SVG 포커스 설정
<a> 요소는 포커스 요소라 포커스 접근이 가능하지만, 다른 비 포커스 요소는 포커스 접근이 안됩니다. 하지만 tabindex
속성을 설정하면 비 포커스 요소에도 포커스 접근이 가능해집니다.
SVG 2.0 접근성 지원
SVG 2(표준 입후보안 2016.09.15)부터 접근성을 보다 강력하게 지원합니다. Accessibility Suport 내용을 살펴보면 다음과 같이 기술하고 있습니다.
<title>, <desc>
텍스트 대체 수단 지원<g>
요소 그룹 의미 정의<a> 요소 지원
lang
속성 지원z-index
속성 지원tabindex
속성 지원스크립트 제작자를 위한 마우스 이벤트 지원 및 키보드 이벤트 속성 지원
스크립트 제작자를 위한 키보드 이벤트 지원
SVG 요소에 포커스를 설정하는 스크립트 지원
SVG 요소의 tabindex 속성을 얻기 위한 스크립트 지원
Document Interface의 HTML activeElement 속성을 얻기 위한 스크립트 지원
참고
Last updated