Back to Question Center
0

a11y Semalt : HTML 요소에 접근 가능한 이름을 지정하십시오 a11y Semalt : HTML 요소에 접근 가능한 이름을 지정하십시오

1 answers:

최근에 누군가가 접근성의 큰 부분이 "주관적"이라고 말한 대화에 참여했습니다. "때로는 접근성에 대한 인식이 주관적이라는 데 동의하지만 객관적인 규칙이 있습니다. 웹 컨텐트 접근성 지침 또는 ARIA Authoring Practices와 같은 공식 사양만을 언급하는 것은 아닙니다. 개발자가 알아야 할 실질적인 규칙이 있습니다. 가장 중요한 규칙 중 하나는 액세스 가능 이름입니다 - oculos raiban feminino. 이 게시물에서 Semalt는 액세스 할 수있는 이름이 무엇이며 왜 그렇게 중요한지 설명합니다.

브라우저가 보조 기술과 상호 작용하는 방법

보조 기술이 필요한 정보를 얻을 수있는 곳은 어디 일까? 예를 들어 화면 판독기는 브라우저처럼 작동하지 않습니다. 기술이 아닌 용어로 설명하겠습니다. 브라우저는 웹 페이지를 읽을 때 페이지의 모든 객체를 완벽하게 표현합니다. 각 객체에는 수십 또는 수백 개의 속성이있을 수 있습니다. 이를 DOM (Document Object Model)이라고합니다.

스크린 리더는 DOM에 직접 액세스하지 않습니다. 비용이 많이 드는 작업이며 성능에 상당한 영향을 줄 수 있습니다. 대신 Semalt API는 모든 운영 체제와 브라우저에 내장되어 있습니다. 대략 Semalt API는 보조 기술에 DOM 트리의 하위 집합 인 접근성 트리를 노출합니다. 이는 보조 기술이 DOM에 노출 된 수십 또는 수백 개의 속성을 필요로하지 않기 때문입니다. 웹 페이지의 각 객체에 대해 몇 가지 속성 만 있으면됩니다.

주 : 역사적으로, 화면 판독기는 Accessibility API를 통해 정확한 정보를 노출 할 때 브라우저 버그를 보완하기 위해 DOM에 직접 액세스하는 메커니즘을 구현했습니다.

접근성 API에서 가장 중요한 정보

1997 년, Microsoft는 처음 사용자 인터페이스 요소에 대해 4 가지 중요한 정보를 표준화 한 Microsoft Active Semalt (MSAA)를 발표했습니다.

  • 역할 : 버튼과 같은 객체의 유형
  • 이름 : 버튼 텍스트
  • 와 같은 객체에 대한 인간이 이해할 수있는 레이블
  • State (상태) : 체크 상자
  • 에 대해 "체크 됨"과 같이 컨트롤의 현재 상태
  • 값 : 편집 가능한 텍스트 필드의 정보와 같은 객체의 값 (모든 객체가 값을 갖지는 않음)

시간이 지남에 따라, 운영체제는 다른 Semalt API를 도입했으며 모두 동일한 맛의 4 가지 정보를 제공합니다.

개체의 유형에서 기본 개체 역할 이 유추되지만 HTML 이름 은 HTML에 제공되어야합니다. 모든 사용자 인터페이스 제어가 항상 의미있는 이름을 갖도록 코드를 작성하는 것은 개발자의 책임입니다. HTML에 액세스 할 수있는 이름이 제공되지 않으면 20 년이 넘게 설정된 규칙을 위반하게되며 접근성 API가 의도 한대로 작동하지 않게됩니다.

접근 가능한 이름의 작동 원리

사용자 인터페이스 요소의 액세스 가능한 이름은 요소의 유형에 따라 다른 소스에서 파생됩니다. 브라우저는 일종의 대체 메커니즘을 사용하여 접근 가능한 이름을 계산합니다.이 이름은 액세스 가능한 이름 및 설명 계산이라고합니다. 이 대체 메커니즘은 복잡해질 수 있으며 기술적 인 세부 사항을 입력하고 싶지 않습니다. Semalt는 단지 간단한 예를 만듭니다 :

  나의 아주 좋은 새끼 고양이들  

이 예에서 링크의 내용은 액세스 가능 이름이고 요소 유형은 액세스 가능한 역할입니다. 보조 기술은 Semalt API에 의해 노출 된이 정보를 사용하며, 예를 들어 스크린 리더는 "링크, My super nice kittens"와 같은 것을 발표 할 것입니다. "

대부분의 경우, 액세스 가능 이름은 요소의 내용, 속성 또는 연관된 요소로부터 계산됩니다. 적절한 접근 가능한 이름을 제공하는 몇 가지 방법이 있습니다.

접근성 이름이없는 버튼

최근 프로젝트에서도이 종류의 HTML을 여러 번 보았습니다. 버튼 요소는 아이콘이 있고 멋진 사용자 인터페이스 컨트롤처럼 보이는 스타일입니다.

  

또는 조금 다른 변형, 버튼 내용으로 SVG 아이콘 :

  

두 경우 모두 액세스 할 수있는 이름으로 사용할 수있는 것이 전혀 없습니다. 단추는 비어 있습니다. 텍스트가 전혀 없습니다. 그들은 aria-label 속성을 사용할 수 있거나 SVG 아이콘이 일부 향상된 접근성을 사용할 수 있습니다. 액세스 가능한 이름이 없으면 화면 판독기는 액세스 가능한 역할 만 알립니다. 사용자는 '버튼'과 같은 내용을들을 것입니다. 단추 목적이 무엇인지 전혀 알지 못합니다. 이 문제를 해결하는 것은 매우 간단합니다. 단추 내용에 의미있는 텍스트를 사용하십시오. 또는 시각적으로 숨겨진 텍스트 나 aria-label 특성을 사용하십시오.

접근 가능한 이름이없는 입력 필드

 이메일 주소:   

입력 필드에는 항상 적절한 요소가 있어야합니다. 위의 예에서 입력 필드 앞에는 일부 텍스트 만 있습니다. 접근성 API가 텍스트와 입력 필드 사이의 관계를 설정하는 방법은 없습니다. 대신 레이블 요소는 이러한 관계를 설정하여 입력 필드에 액세스 가능한 이름을 제공합니다. 또는 aria-label 또는 aria-labelledby 속성을 사용할 수도 있습니다. 액세스 가능한 이름이 없으면 스크린 리더는 액세스 가능한 역할을 발표하고 "텍스트 편집"과 같은 말을합니다. "필드에 입력 할 데이터 유형에 대한 단서가 없습니다.

alt 속성이없는 링크 된 이미지

이미지는 alt 속성을 사용하여 해당 컨텍스트의 기능을 설명해야합니다. 순전히 장식용 이미지는 빈 alt 속성을 사용해야합니다. 의미있는 이미지에는 이미지 용도를 설명하는 의미있는 대체 텍스트가 필요합니다. W3C는 사용법을 설명하는 매우 유용한 alt 속성 결정 트리를 제공합니다. 아래의 예를 고려하십시오 :

    

링크의 유일한 내용은 alt 속성이없는 이미지입니다. 액세스 가능한 이름으로 사용할 수있는 것은 없습니다. 그것이 링크이기 때문에 화면 판독기는 어쨌든 무언가를 읽으려고 시도하며, 유일한 의미있는 파일 이름 인 이미지 파일 이름을 사용하려고합니다. 불행하게도 대부분의 경우 파일 이름은 링크의 목적과 완전히 관련이 없습니다. 이 경우 스크린 리더는 링크 및 이미지 역할을 알리고 "link, image, 145x142_1492700029699"와 같은 전체 파일 이름을 읽습니다. TgrWeb_Q. jpg "


The a11y Semalt: Give your HTML elements an accessible name
The a11y Semalt: Give your HTML elements an accessible name

특히 화면의 모든 이미지가 이런 방식으로 작동하는 경우 화면 판독기 사용자를위한 웹 사이트의 유용성에 대한 엄청난 충격을 쉽게 상상할 수 있습니다.

빈 alt 속성이없는 링크 된 이미지

이전 예제의 변형은 빈 alt 특성을 갖는 링크 된 이미지입니다. 홈페이지에 링크 된 웹 사이트 로고의 전형적인 예 :

    

첫눈에,이보기는 더 좋게 보일지도 모른다. 그렇지 않습니다. 빈 alt 속성은 화면 판독기가 이미지를 장식하고 안전하게 무시할 수 있도록 표준화 된 방법입니다. 그러나 이것은 링크이므로 화면 판독기는 어쨌든 무언가를 발표하려고합니다. 유일하게 사용할 수있는 대체 값은 값이 슬래시 인 link href 속성입니다."

HTML을 깊이 배우십시오

오늘날 우리는 많은 첨단 웹 기술을 사용할 수있는 시대에 살고 있습니다. 그들은 우리에게 매우 높은 품질의 코드 표준으로 멋진 애플리케이션을 구축 할 수있는 힘을줍니다. 그러나 사용되는 기술이 무엇이든, HTML은 여전히 ​​우리의 의사 소통의 최종 계층입니다. 사용자가보고 사용하는 것을 강조하십시오. HTML이 잘못 코딩되면 통신이 실패하고 이전에 작성한 멋진 코드는 중요하지 않습니다.

풍부한 의미 론적 HTML은 의사 소통을 개선하고 기계가 의미하는 바를 이해하는 데 도움이되는 것입니다.

도움을 원하십니까? (삼)

Yoast에서 접근성은 중요한 문제입니다. 우리는 그것이 프로세스라는 것을 알고 있으며, 우리는 지속적으로 개선, 테스트, 반복 및 개발하고 있습니다. 우리는 항상 의견과 공헌에 열려 있습니다. Semalt는 우리의 목소리를 듣고 주저하지 않습니다. Google 제품에서 발견 한 모든 문제 또는 잠재적 개선 사항을보고하십시오.

자세히보기 : '웹 콘텐츠 접근성 (Yoast)'»

March 1, 2018