시맨틱 및 콘텐츠 탐색

페이지 탐색에서 시맨틱의 역할

Alice Boxhall
Alice Boxhall
Dave Gash
Dave Gash
Meggin Kearney
Meggin Kearney

어포던스, 시맨틱스, 보조 기술에서 접근성 트리를 사용하여 사용자를 위한 대체 사용자 환경을 만드는 방법을 알아봤습니다. 많은 표준 요소에 의미 체계와 지원 동작이 내장되어 있기 때문에 표현력이 뛰어나고 시맨틱 HTML을 작성하면 적은 노력으로 많은 접근성을 얻을 수 있습니다.

이 강의에서는 특히 탐색과 관련하여 스크린 리더 사용자에게 매우 중요한 덜 명확한 의미 체계를 다룹니다. 컨트롤은 많지만 콘텐츠는 많지 않은 간단한 페이지에서 페이지를 검색하여 필요한 것을 쉽게 찾을 수 있습니다. 그러나 위키백과 항목이나 뉴스 애그리게이터와 같이 콘텐츠가 많은 페이지에서는 모든 내용을 하향식으로 읽는 것은 실용적이지 않습니다. 콘텐츠를 효율적으로 탐색할 방법이 필요합니다.

스크린 리더는 스크린 리더가 지루하고 사용하기 느리거나 스크린 리더가 화면을 찾을 수 있으려면 화면의 모든 항목에 포커스를 맞춰야 한다고 오해하는 경우가 많습니다. 그렇지 않은 경우가 많습니다.

스크린 리더 사용자는 종종 제목 목록을 사용하여 정보를 찾습니다. 대부분의 스크린 리더에는 로터라는 중요한 기능인 페이지 제목 목록을 쉽게 분리하고 검색하는 방법이 있습니다. HTML 제목을 효과적으로 사용하여 이 기능을 지원하는 방법을 알아보겠습니다

효과적으로 제목 사용

먼저 앞서 언급했듯이 DOM 순서는 포커스 순서뿐만 아니라 스크린 리더 순서에도 중요합니다. VoiceOver, NVDA, JAWS, ChromeVox와 같은 스크린 리더로 실험하면 제목 목록이 시각적 순서가 아닌 DOM 순서를 따르게 됩니다.

이는 일반적으로 스크린 리더에 적용됩니다. 스크린 리더는 접근성 트리와 상호작용하고 접근성 트리는 DOM 트리를 기반으로 하므로 스크린 리더에서 인식하는 순서는 직접 DOM 순서를 기반으로 합니다. 즉 적절한 제목 구조가 그 어느 때보다 중요해졌습니다.

잘 구조화된 페이지에서는 대부분 콘텐츠 블록 간의 상위-하위 관계를 나타내기 위해 제목 수준이 중첩됩니다. WebAIM 체크리스트에서는 이 기법을 반복적으로 참조합니다.

  • 1.3.1 '의미론적 마크업이 제목 지정에 사용됨' 언급
  • 2.4.1 콘텐츠 블록을 우회하는 기법으로 제목 구조 언급
  • 2.4.6에서는 유용한 제목 작성을 위한 몇 가지 세부정보를 설명합니다.
  • 2.4.10에서는 '해당하는 경우 콘텐츠의 개별 섹션이 제목을 사용하여 지정됩니다.'라고 명시합니다.

화면에 모든 제목을 표시할 필요는 없습니다. 예를 들어 위키백과는 스크린 리더와 기타 보조 기술에서만 액세스할 수 있도록 의도적으로 일부 제목을 화면 밖에 배치하는 기법을 사용합니다.

<style>
    .sr-only {
    position:absolute;
    left:-10000px;
    top:auto;
    width:1px;
    height:1px;
    overflow:hidden;
    }
</style>

<h2 class="sr-only">This heading is offscreen.</h2>

복잡한 애플리케이션의 경우 시각적 디자인에 시각적 제목이 필요하지 않거나 표시될 공간이 없을 때 제목을 수용하는 좋은 방법이 될 수 있습니다.

기타 탐색 옵션

제목이 적절한 페이지는 스크린 리더 사용자의 탐색에 도움이 되지만, 링크, 양식 컨트롤, 랜드마크 등 사용자가 페이지를 이동하는 데 사용할 수 있는 다른 요소도 있습니다.

독자는 스크린 리더의 로터 기능 (페이지 제목 목록을 분리하고 스캔하는 간편한 방법)을 사용하여 페이지의 링크 목록에 액세스할 수 있습니다. 간혹 위키에서처럼 링크가 많기 때문에 독자가 링크 내에서 용어를 검색할 수도 있습니다. 따라서 페이지에서 특정 용어가 나타날 때마다가 아니라 실제로 해당 용어를 포함하는 링크로만 조회수가 제한됩니다.

이 기능은 스크린 리더가 링크를 찾을 수 있고 링크 텍스트가 유의미한 경우에만 유용합니다. 예를 들어 다음은 링크를 찾기 어렵게 만드는 몇 가지 일반적인 패턴입니다.

  • href 속성이 없는 앵커 태그 단일 페이지 애플리케이션에서 자주 사용되는 이러한 링크 타겟은 스크린 리더에 문제를 일으킵니다. 자세한 내용은 단일 페이지 앱에 관한 도움말을 참고하세요.
  • 링크로 구현된 버튼 이렇게 하면 스크린 리더가 콘텐츠를 링크로 해석하고 버튼 기능을 사용할 수 없습니다. 이러한 경우 앵커 태그를 실제 버튼으로 바꾸고 적절한 스타일을 지정하세요.
  • 링크 콘텐츠로 사용되는 이미지입니다. 필요한 경우 연결된 이미지를 스크린 리더에서 사용하지 못할 수 있습니다. 링크가 보조 기술에 올바르게 노출되도록 하려면 이미지에 alt 속성 텍스트가 있는지 확인하세요.

잘못된 링크 텍스트도 또 다른 문제입니다. '자세히 알아보기' 또는 '여기를 클릭하세요'와 같은 클릭 가능한 텍스트는 링크가 이동하는 위치에 대한 의미론적 정보를 제공하지 않습니다. 대신 '반응형 디자인 자세히 알아보기' 또는 '캔버스 튜토리얼 보기'와 같은 설명 텍스트를 사용하면 스크린 리더에서 링크에 관한 의미 있는 컨텍스트를 제공할 수 있습니다.

로터는 양식 컨트롤 목록을 가져올 수도 있습니다. 이 목록을 사용하여 특정 항목을 검색하여 해당 항목으로 바로 이동할 수 있습니다.

스크린 리더에서 흔히 범하는 오류는 발음입니다. 예를 들어 스크린 리더는 'Udacity'를 'oo-dacity'로 발음하거나 전화번호를 큰 정수로 읽거나 약어인 것처럼 대문자 텍스트를 읽을 수 있습니다. 흥미롭게도 스크린 리더 사용자는 이러한 별난 방식에 익숙하며 이를 고려하고 있습니다.

일부 개발자는 음성학적 철자로 표기된 스크린 리더 전용 텍스트를 제공하여 이 상황을 개선하려고 합니다. 소리 나는 대로 표기하는 철자에 대한 간단한 규칙은 다음과 같습니다. 하지 마세요. 그러면 문제가 악화될 뿐입니다. 예를 들어 사용자가 점자 디스플레이를 사용하면 단어의 철자가 잘못되어 혼란스러울 수 있습니다. 스크린 리더를 사용하면 단어의 철자를 소리 내어 읽을 수 있으므로 사용자가 환경을 제어하고 필요할 때를 결정하도록 맡깁니다.

리더는 로터를 사용하여 랜드마크 목록을 볼 수 있습니다. 이 목록은 독자가 기본 콘텐츠와 HTML 랜드마크 요소에서 제공하는 일련의 탐색 랜드마크를 찾는 데 도움이 됩니다.

HTML5에는 header, footer, nav, article, section, main, aside 등 페이지의 시맨틱 구조를 정의하는 데 도움이 되는 새로운 요소가 도입되었습니다. 이러한 요소는 내장된 스타일 지정을 강제하지 않고 페이지에 구조적 단서를 구체적으로 제공합니다 (어차피 CSS로 해야 함).

시맨틱 구조 요소는 반복되는 여러 div 블록을 대체하며 작성자와 독자 모두에게 페이지 구조를 직관적으로 표현할 수 있도록 더 명확하고 구체적인 방법을 제공합니다.