문서 구조 역할 part1 - by. UXKM

요약 설명

문서 구조 역할(Document Structure Roles)은 웹 페이지나 애플리케이션의 콘텐츠를 논리적이고 의미 있는 방식으로 구성하는 데 사용됩니다. 이 역할은 문서의 주요 부분을 정의하고, 보조 기술이 이 구조를 이해할 수 있도록 도와줍니다. 또한, 페이지를 효율적으로 탐색할 수 있도록 콘텐츠를 구조화하는 데 필수적입니다.

W3C ARIA Document Structure Roles

application 역할

요약 설명

application 역할은 웹 페이지의 특정 영역이 일반적인 웹 콘텐츠와는 다르게, 고도의 상호작용이 필요한 애플리케이션처럼 동작함을 보조 기술에 알리는 데 사용됩니다. 이 역할은 웹 페이지에서 데스크탑 애플리케이션과 유사한 상호작용을 제공하는 UI 요소에 사용되며, 사용자에게 더 복잡한 기능을 제공하기 위해 사용됩니다.

W3C ARIA application
MDN ARIA application

기본 설명

  • application 역할은 복잡한 상호작용을 요구하는 웹 애플리케이션의 특정 영역을 나타냅니다. 이 역할을 사용하면 보조 기술이 이 콘텐츠를 데스크탑 애플리케이션처럼 처리할 수 있게 되며, 사용자는 더 정교한 상호작용을 수행할 수 있습니다.
  • 적절한 사용 필수

    application 역할은 복잡한 기능이 필요한 웹 애플리케이션에만 사용해야 하며, 일반적인 웹 페이지나 단순 인터페이스에는 사용하지 않는 것이 좋습니다. 이는 사용자의 웹 탐색 경험을 보호하고, 불필요한 복잡성을 피하는 데 중요합니다.

  • 중요한 점

    application 역할을 사용하는 경우, 사용자가 애플리케이션 모드에서 필요한 상호작용 방법을 이해할 수 있도록 충분한 안내를 제공해야 합니다. 이를 통해 사용자 경험과 접근성을 모두 향상시킬 수 있습니다.

사용 시 주의사항

  • 적절한 사용 범위 설정

    application 역할은 특정 기능이 복잡하고, 상호작용이 고도화된 영역에만 사용해야 합니다. 예를 들어, 사용자 입력과 피드백이 빈번하고 즉각적인 처리가 필요한 인터페이스에 사용됩니다.

  • 일반적인 웹 페이지에는 사용하지 않기

    일반적인 콘텐츠 탐색을 필요로 하는 웹 페이지나 단순한 인터페이스에는 application 역할을 사용하지 않는 것이 좋습니다. 이는 사용자가 웹 페이지와 상호작용하는 기본적인 방법을 방해할 수 있습니다.

  • 스크린 리더와의 상호작용 주의

    application 역할을 사용하면 스크린 리더는 기본 탐색 모드를 비활성화하고, 애플리케이션 모드로 전환됩니다. 이로 인해 사용자는 일반적인 문서 탐색 키보드 명령을 사용할 수 없게 되므로, 필요한 경우 키보드 단축키와의 상호작용 방법을 안내해야 합니다.

상속된 상태 및 속성

  • aria-labelledby

    애플리케이션 영역의 레이블을 참조합니다.

  • aria-describedby

    애플리케이션 영역에 대한 추가 설명을 제공합니다.

  • aria-live

    애플리케이션 내에서 실시간으로 업데이트되는 정보를 사용자에게 전달할 수 있습니다.

예시

잘못된 예시

이 예시는 application 역할을 일반적인 웹 콘텐츠에 사용하고 있습니다. application 역할은 복잡한 웹 애플리케이션 기능을 제공하는 영역에만 사용되어야 합니다. 단순한 정보 제공에는 적합하지 않습니다.

올바른 예시

이 예시는 복잡한 상호작용이 필요한 스프레드시트 애플리케이션을 나타내며, application 역할을 사용하여 사용자가 이 인터페이스를 데스크탑 애플리케이션처럼 사용할 수 있도록 설정했습니다.

복잡한 UI 예시

사용자 지정 스프레드시트 UI를 application 역할과 함께 구현한 예시입니다. 사용자는 키보드를 사용하여 스프레드시트 셀 간을 이동할 수 있으며, 보조 기술은 이 영역을 일반적인 웹 페이지의 일부로 인식하지 않고, 애플리케이션처럼 처리합니다.

고급 상호작용이 필요한 애플리케이션 예시

이 예시는 드로잉 애플리케이션을 구현한 것으로, 사용자에게 그리기 도구를 선택하고, 캔버스에 그림을 그릴 수 있는 기능을 제공합니다. application 역할은 보조 기술이 이 영역을 복잡한 상호작용을 필요로 하는 애플리케이션으로 인식하게 합니다.

복잡한 그래픽 에디터 예시

이 예시는 사용자가 다양한 도구를 사용하여 그래픽 작업을 수행할 수 있는 그래픽 에디터를 나타냅니다. application 역할은 이 영역을 일반적인 웹 콘텐츠와 구분하여, 보조 기술이 이를 애플리케이션으로 인식하게 합니다.

article 역할

요약 설명

article 역할은 웹 페이지에서 독립적으로 구분될 수 있는 콘텐츠 블록을 나타냅니다. 이 콘텐츠 블록은 독립적으로 배포하거나 재사용할 수 있으며, 문서의 다른 부분과 구별되는 자체적인 의미를 가지고 있습니다. 예를 들어, 뉴스 기사, 블로그 포스트, 포럼의 글 등이 이에 해당됩니다.

W3C ARIA article
MDN ARIA article
UXKM : article element

기본 설명

  • article 역할은 웹 페이지에서 독립적으로 이해될 수 있는 콘텐츠를 정의하는 데 사용됩니다. 이 역할을 사용하면 보조 기술이 이 콘텐츠를 독립적인 문서로 처리할 수 있도록 도와줍니다.
  • 시멘틱 마크업 추천

    가능하면 HTML5 시멘틱 요소인 <article>을 사용하여 독립적인 콘텐츠를 정의하는 것이 좋습니다. 이 방법은 문서의 의미를 명확히 하고, 접근성을 자연스럽게 향상시킵니다.

  • 중요한 점

    article 역할은 독립적인 의미를 가지는 콘텐츠에만 사용해야 하며, 문서의 다른 부분과 함께 이해되어야 하는 콘텐츠에는 적합하지 않습니다.
    필요한 경우 aria-labelledbyaria-describedby 속성을 사용해 콘텐츠의 제목과 설명을 명확히 제공하여, 보조 기술 사용자가 콘텐츠를 쉽게 이해할 수 있도록 해야 합니다.

사용 시 주의사항

  • 독립적인 콘텐츠에 사용

    article 역할은 독립적으로 읽히고 이해될 수 있는 콘텐츠에만 사용해야 합니다. 문서나 페이지의 일부로만 의미가 있는 콘텐츠에는 사용하지 않습니다.

  • HTML5 시멘틱 요소 사용 권장

    가능하면 HTML5의 <article> 요소를 사용하여 시멘틱하게 콘텐츠를 정의하는 것이 좋습니다. 이는 보조 기술이 콘텐츠를 올바르게 인식하고 처리할 수 있도록 도와줍니다.

  • 중복 사용 방지

    문서 내에서 중복되는 article 역할을 사용할 경우, 콘텐츠의 독립적인 의미를 잃을 수 있으므로 주의해야 합니다. 각각의 article은 고유한 의미를 가져야 합니다.

상속된 상태 및 속성

  • aria-labelledby

    article의 제목을 지정하여 보조 기술이 이를 콘텐츠의 제목으로 식별하게 합니다. 이 속성은 콘텐츠의 제목 요소를 참조하도록 설정할 수 있습니다.

  • aria-describedby

    article의 설명을 제공하여 보조 기술이 이 콘텐츠의 목적이나 추가적인 설명을 사용자에게 전달할 수 있게 합니다.

  • aria-label

    article의 목적을 명확히 설명하는 레이블을 제공합니다. 이 속성은 article이 어떤 역할을 하는지 명확히 하여, 보조 기술 사용자가 이해하기 쉽게 합니다.

  • 기타 상속된 속성

    article 역할은 일반적으로 특정 상태를 상속받지 않지만, 필요에 따라 aria-livearia-busy 속성 등을 추가하여 콘텐츠가 동적으로 업데이트될 때 정보를 사용자에게 제공할 수 있습니다.

예시

잘못된 예시

이 예시는 회사 소개를 나타내는 콘텐츠에 article 역할을 사용하고 있지만, 이 콘텐츠는 독립적으로 이해되기보다는 문서 전체와 연관된 설명입니다. 이 경우, article 역할보다는 다른 시멘틱 역할이나 일반적인 블록 요소를 사용하는 것이 적합합니다.

올바른 예시

이 예시는 독립적인 뉴스 기사 또는 블로그 게시물로 읽힐 수 있는 콘텐츠에 article 역할을 적절히 사용하고 있습니다. 이 콘텐츠는 자체적으로 의미가 있으며, 다른 문맥에서도 이해될 수 있습니다. 또한, aria-labelledby 속성을 사용해 article의 제목을 보조 기술이 인식할 수 있도록 설정했습니다.

(권장) 시멘틱 사용 예시

이 예시는 HTML5 시멘틱 요소인 <article>을 사용하여 블로그 게시물을 정의한 것입니다. <article> 요소는 기본적으로 article 역할을 가지며, aria-labelledbyaria-describedby 속성을 통해 제목과 설명을 명확히 지정하여 보조 기술이 이 콘텐츠를 올바르게 처리할 수 있도록 돕습니다.

cell 역할

요약 설명

cell 역할은 ARIA 문서 구조 역할 중에서 표(table)의 개별 셀을 나타내는 중요한 역할입니다. HTML의 <td>(표의 데이터 셀)와 <th>(표의 헤더 셀) 요소는 기본적으로 cell 역할을 수행하며, 이 역할은 표의 구조를 정의하고 각 셀이 데이터를 어떻게 표현하는지를 보조 기술에 설명하는 역할을 합니다.

W3C ARIA cell
MDN ARIA cell
UXKM : td element

기본 설명

  • cell 역할은 표의 각 셀을 시멘틱하게 정의하는 중요한 역할을 수행합니다. <td><th> 요소를 사용하여 데이터를 명확하게 구조화하고, 보조 기술이 이를 올바르게 해석할 수 있도록 돕습니다.
  • 적절한 사용

    scope, headers, aria-colindex, aria-rowindex 등의 속성을 활용하여 표의 구조를 명확히 하고, 복잡한 표에서도 셀 간의 관계를 명확히 정의할 수 있습니다.

  • 중요한 점

    표의 각 셀을 정확하게 정의함으로써, 사용자가 표 데이터를 쉽게 탐색하고 이해할 수 있도록 돕는 중요한 도구입니다.

사용 시 주의사항

  • 시멘틱 마크업 사용

    표의 셀을 정의할 때는 시멘틱한 마크업을 사용하여 표의 구조와 의미를 명확히 해야 합니다. <th><td> 요소를 적절하게 사용하고, 필요에 따라 scopeheaders 속성을 추가하여 셀과 헤더 간의 관계를 명확히 정의하는 것이 중요합니다.

  • 복잡한 표에서의 역할

    복잡한 표에서 aria-colindex, aria-rowindex, aria-colspan, aria-rowspan과 같은 ARIA 속성을 활용하여, 보조 기술이 셀의 위치와 범위를 정확히 이해할 수 있도록 해야 합니다.

  • 일관성 유지

    표의 셀에 대한 속성 설정 시 일관성을 유지하여, 사용자가 표를 쉽게 탐색하고 이해할 수 있도록 해야 합니다. 특히 복잡한 표의 경우, 일관성 있는 인덱스와 범위 설정이 중요합니다.

상속된 상태 및 속성

  • scope 속성

    <th> 요소에 사용되어 해당 헤더 셀이 적용되는 셀의 범위를 지정합니다. 예를 들어, scope="col"은 열 헤더, scope="row"는 행 헤더를 나타냅니다.

  • headers 속성

    <td> 요소에 사용되어 이 셀이 참조하는 헤더 셀의 id를 지정합니다. 이는 특히 복잡한 표에서 셀과 관련 헤더 간의 관계를 명확하게 설명하는 데 유용합니다.

  • aria-colindex 및 aria-rowindex

    ARIA 속성 중 하나로, 셀이 속한 열과 행의 인덱스를 지정하여 보조 기술이 표의 셀 위치를 정확히 이해할 수 있도록 합니다.

  • aria-colspan 및 aria-rowspan

    ARIA 속성으로, 셀이 가로 또는 세로로 몇 개의 셀을 병합하는지 설명합니다. 이는 복잡한 테이블 레이아웃에서 특히 유용합니다.

예시

기본 데이터 셀 및 헤더 셀

이 예시는 <th><td> 요소를 사용하여 각각의 셀을 정의하고 있습니다. <th> 요소는 열 헤더로 설정되며, scope="col" 속성을 통해 명확히 정의됩니다. 이 구조는 ARIA 문서 구조 역할에서 기본적인 cell 역할을 수행합니다.

복잡한 표 구조에서의 cell 역할

이 예시는 <thead><tbody> 요소를 사용하여 복잡한 표 구조를 시멘틱하게 나누고 있습니다. <th> 요소는 행과 열 헤더로 사용되며, 각 데이터 셀(td)은 headers 속성을 사용해 관련 헤더를 참조합니다.

ARIA 속성을 활용한 예시

이 예시는 복잡한 표에서 각 셀의 정확한 위치를 나타내기 위해 aria-colindexaria-rowindex 속성을 사용하고 있습니다. 이러한 속성들은 보조 기술이 셀의 위치를 올바르게 파악할 수 있도록 도와줍니다.

columnheader 역할

요약 설명

columnheader 역할은 HTML 테이블에서 열의 제목을 나타내는 헤더 셀을 정의합니다. 이 역할은 주로 <th> 요소와 함께 사용되며, 특정 열의 데이터를 설명하거나 요약하는 기능을 합니다. columnheader 역할을 통해 보조 기술은 해당 열이 무엇을 나타내는지 사용자에게 명확하게 전달할 수 있습니다.

W3C ARIA columnheader
MDN ARIA columnheader
UXKM : th element

기본 설명

  • columnheader 역할은 HTML 테이블에서 열의 제목을 나타내며, <th> 요소와 함께 사용됩니다. 이 역할은 테이블의 열이 나타내는 데이터 유형을 설명하고, 보조 기술이 이를 올바르게 해석하도록 돕습니다.
  • 적절한 사용

    <th> 요소와 scope, aria-sort, aria-colspan 등의 속성을 적절히 사용하여, 열 헤더의 역할과 상태를 명확히 정의하는 것이 중요합니다.

  • 중요한 점

    테이블의 각 열을 시멘틱하게 정의함으로써, 사용자가 테이블 데이터를 쉽게 이해하고 탐색할 수 있도록 돕는 중요한 도구입니다. 표의 일관성과 명확성을 유지하여 사용자 경험과 접근성을 모두 향상시킬 수 있습니다.

사용 시 주의사항

  • 시멘틱 마크업 사용

    <th> 요소와 scope="col" 속성을 함께 사용하여 열 헤더의 역할을 명확히 정의하는 것이 중요하며, 보조 기술이 표의 구조를 이해하는 데 도움을 줍니다.

  • 정렬 상태 명확히 지정

    열 헤더가 정렬 가능하다면, aria-sort 속성을 사용해 현재 열의 정렬 상태를 명확히 지정하여, 사용자들이 테이블의 데이터 정렬 상태를 쉽게 파악할 수 있도록 합니다.

  • 병합된 셀의 명확한 정의

    aria-colspanaria-rowspan 속성을 사용해 병합된 셀의 범위를 명확히 정의해야 합니다. 이는 복잡한 테이블에서 셀 간의 관계를 이해하는 데 필수적입니다.

상속된 상태 및 속성

  • scope 속성

    <th> 요소에서 사용되며, 열 헤더가 적용되는 범위를 정의합니다. 예를 들어, scope="col"은 열 전체에 적용되는 헤더임을 나타냅니다.

  • aria-sort 속성

    정렬 가능한 열 헤더에 사용되며, 열이 오름차순(ascending), 내림차순(descending), 정렬되지 않음(none), 또는 기타 사용자 정의 정렬(other) 상태 중 어떤 상태인지 지정합니다. 이는 보조 기술이 현재 테이블의 정렬 상태를 사용자에게 전달하는 데 도움을 줍니다.

  • aria-colspan

    열 헤더가 가로로 병합된 열의 수를 지정합니다.

  • aria-rowspan

    열 헤더가 세로로 병합된 행의 수를 지정합니다.

예시

기본 열 헤더 사용 예시

이 예시는 열 제목을 나타내기 위해 <th> 요소를 사용하고 있으며, scope="col" 속성을 통해 열 전체에 적용되는 헤더임을 명확히 하고 있습니다. 이 구조는 ARIA에서 columnheader 역할을 암시적으로 수행합니다.

정렬 가능한 열 헤더 예시

이 예시는 aria-sort="ascending" 속성을 사용하여 현재 열이 오름차순으로 정렬되어 있음을 나타냅니다. 이는 보조 기술이 현재 열의 정렬 상태를 사용자에게 전달하는 데 유용합니다.

병합된 열 헤더 예시

이 예시는 aria-colspan 속성을 사용해 첫 번째 행의 "Employee Detail" 헤더 셀이 두 개의 열을 병합하고 있음을 명확히 나타냅니다. 보조 기술은 이 정보를 바탕으로 셀이 포함하는 열의 범위를 이해할 수 있습니다.

definition 역할

요약 설명

definition 역할은 웹 콘텐츠에서 용어의 정의를 제공하는 콘텐츠를 나타냅니다. 이 역할은 일반적으로 텍스트 내에서 중요한 용어의 의미를 명확하게 설명할 때 사용됩니다. definition 역할은 보조 기술이 특정 용어의 정의를 사용자에게 올바르게 전달할 수 있도록 도와줍니다.

W3C ARIA definition
MDN ARIA definition
MDN dfn element

기본 설명

  • definition 역할은 웹 콘텐츠에서 용어의 정의를 명확히 설명하는 데 사용됩니다. 이 역할을 통해 보조 기술은 사용자에게 특정 용어가 정의되고 있음을 알릴 수 있습니다.
  • 적절한 사용

    용어의 정의를 제공할 때는 시멘틱하게 <dfn> 요소를 사용하여, 정의가 명확히 구분되도록 하는 것이 중요합니다.

  • 중요한 점

    용어의 정의는 문서 내에서 일관되고 명확하게 제공되어야 하며, 이를 통해 사용자가 용어를 쉽게 이해하고 문서의 내용을 효과적으로 학습할 수 있도록 해야 합니다.

사용 시 주의사항

  • 시멘틱 마크업 사용

    용어의 정의를 나타낼 때는 <dfn> 요소를 사용하여 용어를 정의하는 콘텐츠를 명확히 구분하는 것이 중요합니다.

  • 명확한 정의 제공

    용어의 정의는 간결하고 명확하게 작성되어야 하며, 사용자가 해당 용어를 이해하는 데 도움이 되어야 합니다.

  • 용어의 일관성 유지

    문서 내에서 동일한 용어에 대해 일관된 정의를 제공하여, 사용자 경험의 일관성을 유지하는 것이 중요합니다.

상속된 상태 및 속성

기본적으로 상속된 상태나 속성은 없습니다. definition 역할은 용어의 정의를 시멘틱하게 나타내기 위한 역할이므로, 추가적인 ARIA 상태나 속성은 필요하지 않습니다.

예시

기본 용어 정의 사용 예시

이 예시는 <dfn> 요소를 사용하여 "HyperText" 용어의 정의를 제공하고 있습니다. 보조 기술은 이 요소를 통해 "HyperText"가 정의되고 있음을 사용자에게 전달합니다.

용어와 정의의 시멘틱 구분 예시

<dfn> 요소를 사용하여 "API" 용어를 정의하고 있으며, 링크를 통해 동일한 정의로 참조할 수 있도록 설정한 예시입니다. 이는 문서 내에서 용어의 의미를 명확하게 구분하는 데 도움이 됩니다.

학술 자료에서의 정의 사용 예시

이 예시는 학술 문서에서 사용되는 중요한 용어를 정의하는 예시입니다. <dfn> 요소는 용어 "엔트로피"의 정의를 제공하며, 독자가 문서의 내용을 더 잘 이해할 수 있도록 돕습니다.

directory 역할

요약 설명

directory 역할은 트리 구조로 조직된 목차나 파일 목록과 같은 계층적인 항목의 집합을 나타냅니다. 이 역할은 파일 시스템, 카탈로그, 탐색 메뉴와 같은 콘텐츠에서 사용될 수 있습니다. directory 역할은 보조 기술이 이 목록을 탐색할 때, 항목 간의 계층 구조를 이해할 수 있도록 돕습니다.

W3C ARIA directory
MDN ARIA directory

기본 설명

  • 000000000

    directory 역할은 트리 구조로 구성된 항목의 집합을 나타내며, 사용자가 이러한 구조를 쉽게 탐색할 수 있도록 돕습니다. 시멘틱 마크업에서는 기본적인 HTML 요소를 사용하여 이 역할을 자연스럽게 수행하며, 비표준 마크업에서는 다른 HTML 요소에 role="directory"와 관련 ARIA 속성을 사용해 명시적으로 정의할 수 있습니다.

  • 적절한 사용

    계층 구조를 명확히 정의하고, aria-expandedaria-level 속성을 사용하여 항목 간의 관계를 정확히 설정하는 것이 중요합니다. 시멘틱 마크업을 사용하면 자연스럽게 보조 기술이 이를 인식할 수 있으며, 비표준 마크업에서는 ARIA 속성을 적절히 활용해야 합니다.

  • 중요한 점

    directory 역할을 사용하여 복잡한 목록 구조를 시멘틱하게 정의함으로써, 사용자 경험과 접근성을 모두 향상시킬 수 있습니다. 이를 통해 사용자는 트리 구조를 보다 쉽게 탐색하고, 필요한 정보를 효율적으로 찾을 수 있습니다.

사용 시 주의사항

  • 목록 항목 간의 계층 구조 정의

    directory 역할을 사용할 때는 각 항목의 계층 구조를 명확히 정의해야 합니다. 이를 통해 보조 기술이 목록을 올바르게 해석하고, 사용자에게 효율적인 탐색 경험을 제공합니다.

  • 적절한 확장 상태 관리

    aria-expanded 속성을 사용해 항목의 확장 상태를 명확히 지정해야 합니다. 사용자가 목록을 탐색할 때, 현재 어떤 항목이 확장되어 있는지 알 수 있도록 해야 합니다.

  • 중첩된 목록 관리

    directory 역할은 중첩된 목록 구조에서 사용될 때 효과적입니다. 중첩된 항목은 계층 구조를 명확히 나타내야 하며, aria-level 속성을 적절히 설정해야 합니다.

상속된 상태 및 속성

  • aria-expanded

    디렉토리 항목이 확장되어 있는지 여부를 나타냅니다. true로 설정하면 항목이 확장되어 하위 항목이 표시되고, false로 설정하면 하위 항목이 숨겨집니다.

  • aria-level

    디렉토리 항목이 트리 구조에서 어느 계층에 속하는지를 지정합니다. 이 속성을 사용하여 보조 기술이 항목 간의 계층 구조를 이해할 수 있도록 합니다.

예시

잘못된 예시

이 예시는 <div> 요소를 사용하여 디렉토리 구조를 표현했지만, role="directory"와 같은 ARIA 속성 없이 사용되었습니다. 이로 인해 보조 기술이 이 구조를 올바르게 해석하지 못할 수 있습니다.

올바른 예시 - div 요소 마크업을 사용한 디렉토리 구조

이 예시는 <div> 요소에 role="directory"를 사용하여 디렉토리 구조를 명시적으로 나타냅니다. aria-expandedaria-level 속성을 사용해 항목의 계층 구조와 확장 상태를 지정하고 있습니다.

시멘틱 마크업을 사용한 기본 디렉토리 구조 예시

이 예시는 기본적인 디렉토리 구조를 시멘틱한 <ul><li> 요소를 사용하여 나타내고 있습니다. 이 구조는 기본적으로 보조 기술이 올바르게 인식할 수 있습니다.

document 역할

요약 설명

document 역할은 웹 페이지에서 특정 섹션이 독립된 문서나 주요 콘텐츠 블록을 나타내도록 지정하는 데 사용됩니다. 이 역할은 웹 애플리케이션의 일부가 아닌 문서형 콘텐츠(예: 텍스트, 이미지, 비디오 등)를 설명하는 데 유용합니다. document 역할은 주로 전체 페이지가 아닌 특정 섹션이 문서로서 해석되도록 할 때 사용됩니다.

W3C ARIA document
MDN ARIA document

기본 설명

  • document 역할은 웹 애플리케이션 내 특정 섹션이 독립된 문서로서 해석되어야 할 때 유용합니다. 이를 통해 보조 기술은 해당 섹션을 문서 탐색 모드에서 처리할 수 있습니다.
  • 적절한 사용

    document 역할은 전체 웹 페이지가 아닌, 독립된 문서로 간주해야 하는 특정 섹션에만 사용해야 합니다. 이 역할은 시멘틱하게 문서의 범위를 명확히 지정하고, 보조 기술이 이를 올바르게 인식할 수 있도록 해야 합니다.

  • 중요한 점

    document 역할을 사용하여 웹 애플리케이션 내에서 중요한 문서 콘텐츠를 명확히 지정함으로써, 사용자 경험과 접근성을 모두 향상시킬 수 있습니다. 이를 통해 사용자는 문서 콘텐츠를 더 쉽게 탐색하고, 필요한 정보를 효율적으로 찾을 수 있습니다.

사용 시 주의사항

  • 웹 애플리케이션 내에서 사용

    document 역할은 주로 웹 애플리케이션 내에서 독립적인 문서 콘텐츠를 설명할 때 사용됩니다. 전체 웹 페이지에 이 역할을 사용하는 것은 적절하지 않습니다.

  • 문서 탐색 모드 활성화

    이 역할을 사용하면 보조 기술은 문서 탐색 모드를 활성화하여 콘텐츠를 더 쉽게 탐색할 수 있습니다.

  • 적절한 문서 범위 지정

    document 역할을 사용할 때는 정확하게 해당 섹션만 독립된 문서로 지정해야 합니다. 잘못된 위치에 사용하면 사용자 경험에 혼란을 줄 수 있습니다.

상속된 상태 및 속성

  • aria-labelledby

    이 속성은 문서의 제목을 지정하여 보조 기술이 이를 문서의 주요 제목으로 식별하도록 합니다.

  • aria-describedby

    이 속성은 문서에 대한 설명을 제공하여 보조 기술이 이 콘텐츠의 목적이나 추가 정보를 사용자에게 전달할 수 있게 합니다.

예시

잘못된 예시 - 웹 애플리케이션 전체에 사용

이 예시는 role="document"를 전체 웹 애플리케이션에 적용했으나, 이 역할은 특정 섹션을 독립된 문서로 나타낼 때 사용해야 하므로 부적절합니다.

올바른 예시 - 문서 섹션에 사용

이 예시는 <div> 요소에 role="directory"를 사용하여 디렉토리 구조를 명시적으로 나타냅니다. aria-expandedaria-level 속성을 사용해 항목의 계층 구조와 확장 상태를 지정하고 있습니다.

(권장) 시멘틱 마크업에서의 기본 사용

이 예시는 시멘틱 마크업을 사용하여 <article> 요소로 독립된 문서 콘텐츠를 나타냅니다. 보조 기술은 이 콘텐츠를 문서로 인식하고 탐색할 수 있습니다.

feed 역할

요약 설명

feed 역할은 소셜 미디어 타임라인, 뉴스 피드, 블로그 목록과 같이 지속적으로 업데이트되는 항목의 집합을 나타냅니다. 이 역할은 보조 기술이 이러한 콘텐츠의 특성을 이해하고, 사용자에게 적절히 전달할 수 있도록 돕습니다. feed 역할은 주로 소셜 네트워크, 뉴스 애그리게이터, 블로그 플랫폼에서 사용됩니다.

W3C ARIA feed
MDN ARIA feed

기본 설명

  • feed 역할은 지속적으로 업데이트되는 콘텐츠 목록을 나타내며, 사용자가 이러한 동적 콘텐츠를 더 쉽게 탐색할 수 있도록 돕습니다. 이 역할은 보조 기술이 피드의 특성을 이해하고, 새로운 항목이 추가될 때 이를 사용자에게 전달할 수 있도록 설계되었습니다.
  • 적절한 사용

    feed 역할은 동적으로 갱신되는 콘텐츠에만 사용해야 하며, 각 피드 항목에 article 역할을 지정하여 보조 기술이 이를 독립적인 콘텐츠로 인식할 수 있도록 해야 합니다.

  • 중요한 점

    feed 역할을 사용하여 동적인 콘텐츠를 명확히 지정함으로써, 사용자 경험과 접근성을 모두 향상시킬 수 있습니다. 이를 통해 사용자는 피드를 쉽게 탐색하고, 최신 정보를 놓치지 않고 확인할 수 있습니다.

사용 시 주의사항

  • 피드의 동적 특성 반영

    feed 역할은 지속적으로 갱신되는 콘텐츠 목록에 사용되어야 합니다. 사용자가 피드 내에서 항목을 쉽게 탐색하고, 새롭게 추가된 콘텐츠를 인식할 수 있도록 해야 합니다.

  • 실시간 업데이트 관리

    aria-livearia-busy 속성을 사용해 피드가 업데이트 중일 때 사용자에게 이를 명확히 알릴 수 있어야 합니다.

  • 피드 항목에 적절한 역할 지정

    피드 내의 각 항목에는 article 역할을 지정하여, 보조 기술이 각 항목을 독립적인 콘텐츠로 인식하고 처리할 수 있도록 해야 합니다.

상속된 상태 및 속성

  • aria-busy

    피드가 업데이트 중임을 나타내는 속성입니다. true로 설정되면 피드가 갱신 중임을 의미하며, 사용자가 새로운 콘텐츠가 추가되고 있음을 알 수 있습니다.

  • aria-live

    피드의 실시간 업데이트를 사용자에게 알릴 수 있도록 설정합니다. politeassertive로 설정하여 피드 항목이 업데이트될 때 보조 기술이 이를 어떻게 처리할지 지정할 수 있습니다.

  • aria-relevant

    피드에서 어떤 종류의 변경 사항(추가, 삭제, 텍스트 변경 등)을 보조 기술이 사용자에게 알릴지 지정합니다.

예시

잘못된 예시 - 피드 역할의 부적절한 사용

이 예시는 role="feed"를 단순한 콘텐츠 블록에 적용했으나, 이 블록은 지속적으로 갱신되는 동적 콘텐츠가 아니므로 부적절합니다. feed 역할은 주기적으로 업데이트되는 콘텐츠에만 사용해야 합니다.

올바른 예시 - 피드 역할의 적절한 사용

이 예시는 role="feed"를 적절하게 사용하여 동적으로 갱신되는 콘텐츠 목록을 나타내고 있습니다. 또한, aria-live="polite"aria-relevant="additions" 속성을 사용해 피드가 업데이트될 때 사용자에게 알림을 제공합니다.

div 요소 마크업을 사용한 피드 예시

<div> 요소에 role="feed"를 지정하여 피드 역할을 명시적으로 나타냅니다. 각 피드 항목은 role="article"을 사용해 독립적인 콘텐츠로 처리됩니다. aria-busy="true"로 설정하여 피드가 업데이트 중임을 알립니다.

시멘틱 마크업을 사용한 피드 예시

시멘틱 마크업을 사용하여 <section> 요소에 role="feed"를 지정한 예시입니다. 각 피드 항목은 <article> 요소로 구성되어 있어 보조 기술이 이를 독립적인 콘텐츠로 처리할 수 있도록 합니다.

figure 역할

요약 설명

figure 역할은 이미지, 차트, 삽화, 코드 블록 등 독립적으로 설명할 수 있는 콘텐츠의 묶음을 나타냅니다. 이 역할은 콘텐츠가 본문 내의 특정 부분과 관련이 있지만, 독립적으로 이해될 수 있는 것을 나타낼 때 사용됩니다. 일반적으로 figcaption 요소를 사용하여 설명(캡션)을 포함하며, 이 설명은 figure 요소에 속한 콘텐츠를 보충하는 데 사용됩니다.

W3C ARIA figure
MDN ARIA figure
UXKM : figure element

기본 설명

  • figure 역할은 이미지, 그래픽, 코드 블록 등 본문과 관련된 시각적 콘텐츠를 묶어주는 데 사용됩니다. figure 요소는 본문 흐름과 독립적으로 재배치될 수 있으며, 참조 목적으로 사용됩니다. 보조 기술이 이 콘텐츠를 별도로 인식하여 사용자에게 전달할 수 있게 돕습니다.
  • figcaption 요소는 figure 내에 포함된 콘텐츠를 설명하는 텍스트를 제공하며, 보조 기술은 이를 사용하여 콘텐츠의 의미를 사용자에게 전달합니다.
  • 적절한 사용

    figure 요소는 시각적 콘텐츠나 코드 블록을 그룹화하고, figcaption 요소를 사용해 설명을 제공하여 콘텐츠의 의미를 명확히 해야 합니다.

  • 중요한 점

    figure 역할을 사용하여 콘텐츠를 시멘틱하게 그룹화함으로써, 사용자 경험과 접근성을 모두 향상시킬 수 있습니다. 이를 통해 사용자는 시각적 콘텐츠의 맥락을 쉽게 이해하고, 필요한 정보를 효율적으로 찾을 수 있습니다.

사용 시 주의사항

  • 시멘틱 마크업 사용

    시각적 콘텐츠나 코드 블록을 그룹화할 때는 <figure> 요소를 사용하여 시멘틱하게 표현하는 것이 중요합니다. 이는 콘텐츠의 의미를 명확히 하고, 보조 기술이 이를 올바르게 해석할 수 있도록 돕습니다.

  • 적절한 설명 제공

    figcaption 요소를 사용하여 figure 내 콘텐츠를 설명하는 캡션을 제공해야 합니다. 이는 콘텐츠의 맥락을 명확히 하여, 사용자가 내용을 이해하는 데 도움이 됩니다.

  • 독립적인 콘텐츠로 취급

    figure 요소 내 콘텐츠는 본문 흐름과 독립적으로 이해될 수 있어야 하며, 이를 통해 다양한 위치에서 참조될 수 있습니다.

상속된 상태 및 속성

기본적으로 상속된 상태나 속성은 없습니다. figure 역할은 콘텐츠를 시멘틱하게 그룹화하는 역할을 하므로, 추가적인 ARIA 상태나 속성이 필요하지 않습니다.

예시

잘못된 예시 - 독립적인 콘텐츠로 취급되지 않는 경우

이 예시는 <div> 요소를 사용하여 이미지를 설명하지만, 이 콘텐츠는 본문과 독립적으로 취급되지 않으며, 보조 기술이 이를 독립적인 콘텐츠로 인식하지 못할 수 있습니다. figure 요소를 사용하는 것이 더 적절합니다.

올바른 예시 - 피드 역할의 적절한 사용

이 예시는 role="feed"를 적절하게 사용하여 동적으로 갱신되는 콘텐츠 목록을 나타내고 있습니다. aria-live="polite"aria-relevant="additions" 속성을 사용해 피드가 업데이트될 때 사용자에게 알리도록 설정했습니다.

(권장) 올바른 예시 - 시멘틱 마크업에서의 기본 사용

이 예시는 <figure> 요소를 사용하여 콘텐츠를 그룹화하고, figcaption 요소를 사용하여 설명을 제공합니다. 이 구조는 시멘틱하게 올바르며, 보조 기술이 이 콘텐츠를 올바르게 해석할 수 있도록 합니다.

div 요소 마크업을 사용한 figure 역할 예시

이 예시는 <div> 요소에 role="figure"를 사용하여 figure 역할을 명시적으로 지정합니다. <div> 요소를 사용하여 설명 텍스트를 제공하고 있지만, figcaption 요소를 사용하는 것이 더 적절합니다.

generic 역할

요약 설명

generic 역할은 특정 시멘틱한 의미를 가지지 않는 일반적인 컨테이너를 나타냅니다. 이 역할은 기본적으로 아무 의미도 부여되지 않는 요소를 설명하며, HTML의 기본적인 <div><span> 요소와 유사한 역할을 합니다. generic 역할은 보조 기술이 해당 요소에 특별한 시멘틱이 부여되지 않았음을 이해하도록 돕습니다.

W3C ARIA generic
MDN ARIA generic

기본 설명

  • generic 역할은 시멘틱적으로 특별한 의미가 없는 요소에 할당됩니다. 레이아웃 구성이나 스타일링을 위해 사용되며, 보조 기술에서는 이를 단순한 구조적 컨테이너로 인식해 특별한 시멘틱 역할을 부여하지 않습니다.
  • generic 역할은 대부분의 경우 명시적으로 지정할 필요가 없으며, 기본적으로 시멘틱한 의미가 없는 요소에 암시적으로 적용됩니다.
  • 적절한 사용

    generic 역할은 기본적으로 HTML의 <div><span> 요소에 적용되며, 특별한 의미를 부여할 필요가 없는 경우에 사용됩니다. 대부분의 경우 명시적으로 지정할 필요는 없으며, 가능한 경우 시멘틱한 HTML 요소를 사용하는 것이 좋습니다.

  • 중요한 점

    시멘틱한 의미가 중요한 요소에 generic 역할을 부여하는 것은 피해야 하며, 문서의 구조와 의미를 명확히 하는 데 중점을 두어야 합니다. 이를 통해 사용자 경험과 접근성을 향상시킬 수 있습니다.

사용 시 주의사항

  • 시멘틱한 의미를 부여할 필요가 없는 경우에 사용

    generic 역할은 콘텐츠에 특별한 시멘틱 의미를 부여할 필요가 없는 경우에 사용됩니다. 레이아웃이나 스타일링을 위한 단순한 컨테이너를 만들 때 적합합니다.

  • 필요하지 않은 경우 명시적으로 사용하지 않음

    대부분의 경우 <div><span> 같은 요소는 자동으로 generic 역할을 수행하므로, 명시적으로 role="generic"을 지정할 필요가 없습니다.

  • 시멘틱 마크업을 우선 사용

    가능한 경우, generic 역할보다는 시멘틱한 HTML 요소를 사용하여 문서 구조와 의미를 명확히 하는 것이 좋습니다.

상속된 상태 및 속성

기본적으로 상속된 상태나 속성은 없습니다. generic 역할은 의미 없는 일반적인 컨테이너를 나타내므로, 추가적인 ARIA 상태나 속성이 필요하지 않습니다.

예시

잘못된 예시 - generic 역할을 사용하지 않아야 하는 경우

이 예시는 header 요소에 role="generic"을 지정하여 시멘틱한 의미를 제거했으나, header 요소는 시멘틱하게 중요한 역할을 하므로 generic 역할을 사용하지 말아야 합니다.

올바른 예시 - 시멘틱한 요소를 유지

이 예시는 header 요소에 시멘틱한 역할을 유지하여 웹 페이지의 구조와 의미를 명확히 합니다. 이 경우, generic 역할을 사용하지 않고 기본 시멘틱 역할을 유지하는 것이 적절합니다.

(권장) 마크업에서의 기본 사용

이 예시는 <div> 요소를 사용하여 단순히 레이아웃을 구성하고 있습니다. 이 경우, div는 암시적으로 generic 역할을 수행합니다.

group 역할

요약 설명

group 역할은 여러 요소를 논리적으로 묶어 하나의 그룹으로 취급하는 데 사용됩니다. 이 역할은 보조 기술이 이러한 요소들이 하나의 논리적 단위로 묶여 있음을 인식하게 하여, 사용자에게 이를 일관되게 전달할 수 있도록 합니다. group> 역할은 주로 폼 요소, 메뉴 항목, 또는 기타 연관된 컨텐츠를 그룹화할 때 사용됩니다.

W3C ARIA group
MDN ARIA group
UXKM : fieldset element
UXKM : legend element

기본 설명

  • group 역할은 연관된 요소들을 논리적으로 그룹화해 보조 기술이 이를 하나의 단위로 인식하도록 돕습니다. 주로 라디오 버튼, 체크박스 그룹, 메뉴 항목, 대화 상자 내 섹션 등 관련된 컨트롤을 그룹화할 때 사용됩니다.
  • 적절한 사용

    group 역할은 논리적으로 관련된 요소들을 묶는 데 사용해야 하며, 불필요한 경우에는 사용하지 않는 것이 좋습니다. 시멘틱한 HTML 요소를 사용하는 것이 가능하다면, 이를 우선적으로 사용해야 합니다.

  • 중요한 점

    group 역할을 통해 웹 페이지의 구조를 명확하게 하고, 사용자 경험과 접근성을 향상시킬 수 있습니다. 이를 통해 사용자는 그룹화된 콘텐츠를 쉽게 탐색하고 이해할 수 있습니다.

사용 시 주의사항

  • 연관된 요소를 논리적으로 그룹화

    group 역할은 연관된 요소들을 묶어서 하나의 논리적인 단위로 처리해야 할 때 사용됩니다. 이를 통해 보조 기술이 요소들 간의 관계를 이해하고 사용자에게 전달할 수 있습니다.

  • 적절한 제목과 설명 제공

    aria-labelledbyaria-describedby 속성을 사용해 그룹의 제목과 설명을 제공하면, 보조 기술이 이를 올바르게 사용자에게 전달할 수 있습니다.

  • 사용하지 말아야 할 경우

    시멘틱하게 그룹화가 필요한 경우에는, 시멘틱 HTML 요소(예: <fieldset><legend> 조합)를 사용하는 것이 좋습니다. 불필요하게 group 역할을 사용하는 것은 피해야 합니다.

상속된 상태 및 속성

  • aria-labelledby

    그룹의 제목을 지정하여, 보조 기술이 이 그룹의 제목을 그룹과 연관지어 사용자에게 전달할 수 있게 합니다.

  • aria-describedby

    그룹에 대한 추가 설명을 제공하여, 보조 기술이 이 설명을 그룹과 연관지어 사용자에게 전달할 수 있게 합니다.

예시

잘못된 예시 - 불필요한 그룹화

이 예시는 논리적인 그룹화가 필요하지 않은 콘텐츠에 role="group"을 사용했습니다. 불필요한 그룹화는 보조 기술의 해석을 혼란스럽게 할 수 있으므로 피해야 합니다.

올바른 예시 - 의미 있는 그룹화

이 예시는 네비게이션 메뉴를 <div> 요소에 role="group"을 사용해 논리적으로 그룹화한 예시입니다. aria-labelledby 속성을 통해 그룹의 제목을 지정하여, 보조 기술이 이 정보를 사용자에게 전달할 수 있게 합니다.

(권장) 시멘틱 마크업을 사용한 기본 그룹화 사용 예시

이 예시는 <fieldset><legend> 요소를 사용하여 라디오 버튼을 그룹화하고 있습니다. 보조 기술은 이 그룹을 논리적 단위로 인식하여 사용자에게 전달합니다.

div 요소 마크업을 사용한 그룹화 예시

이 예시는 <div> 요소에 role="group"을 지정하고, aria-labelledby 속성을 사용해 그룹의 제목을 연결한 예시입니다. <fieldset>을 사용할 수 없는 상황에서 유용합니다.

heading 역할

요약 설명

heading 역할은 웹 페이지나 애플리케이션의 구조를 정의하는 데 사용되는 제목을 나타냅니다. 이 역할은 콘텐츠의 계층적 구조를 명확히 하여, 보조 기술이 문서의 내용과 구조를 쉽게 파악할 수 있도록 돕습니다. HTML에서 <h1>부터 <h6>까지의 제목 요소가 기본적으로 이 역할을 수행합니다.

W3C ARIA heading MDN ARIA heading UXKM : heading element

기본 설명

  • heading 역할은 콘텐츠의 주요 섹션을 설명하거나 요약하는 제목을 나타내며, 문서나 애플리케이션의 구조를 이해하는 데 중요한 역할을 합니다. HTML의 제목 요소(<h1> ~ <h6>)에는 자동으로 적용되지만, 필요시 다른 요소에도 지정할 수 있습니다.
    보조 기술은 이 역할을 통해 제목의 중요도와 문서의 계층 구조를 인식하여 사용자에게 적절한 정보를 전달합니다.
  • 적절한 사용

    시멘틱한 제목 요소(<h1> ~ <h6>)를 사용하여 문서의 구조를 명확히 하고, 필요할 경우 다른 요소에 role="heading"aria-level 속성을 지정할 수 있습니다. 계층 구조는 일관되게 유지해야 합니다.

  • 중요한 점

    heading 역할을 통해 웹 페이지의 구조를 명확하게 정의함으로써, 사용자 경험과 접근성을 모두 향상시킬 수 있습니다. 이를 통해 사용자는 콘텐츠를 쉽게 탐색하고, 문서의 흐름을 이해할 수 있습니다.

사용 시 주의사항

  • 시멘틱 마크업을 우선 사용

    가능한 경우, 시멘틱한 HTML 제목 요소(<h1> ~ <h6>)를 사용하는 것이 좋습니다. 이들은 자동으로 heading 역할을 수행하며, 문서의 구조를 명확히 합니다.

  • 적절한 계층 구조 유지

    제목 요소나 heading 역할을 사용할 때, aria-level 속성을 통해 문서의 계층 구조를 일관되게 유지해야 합니다. 올바른 계층 구조는 보조 기술이 콘텐츠를 정확하게 이해하고 전달하는 데 필수적입니다.

  • 과도한 사용 피하기

    heading 역할은 중요하지 않은 텍스트나 단락에 사용하지 않도록 주의해야 합니다. 제목의 의미가 있는 콘텐츠에만 사용해야 합니다.

상속된 상태 및 속성

  • aria-level

    이 속성은 제목의 계층 구조를 나타냅니다. 1에서 6까지의 숫자로 설정할 수 있으며, 이는 HTML의 <h1>에서 <h6>까지와 대응됩니다. 예를 들어, aria-level="1"은 가장 높은 수준의 제목을 나타냅니다.

예시

잘못된 예시 - 일관되지 않은 계층 구조

이 예시는 제목 요소의 계층 구조가 일관되지 않아, 보조 기술이 문서의 구조를 올바르게 해석하는 데 어려움을 겪을 수 있습니다. 제목의 순서를 일관되게 유지해야 합니다.

(권장) 올바른 예시 - 시멘틱 마크업을 사용

이 예시는 HTML 제목 요소(<h1>, <h2>)를 사용하여 문서의 계층 구조를 정의하고 있습니다. 이 구조는 보조 기술이 문서의 내용을 쉽게 탐색하고 이해하는 데 도움을 줍니다.

명시적으로 heading 역할 지정 예시

이 예시는 <div> 요소에 role="heading"aria-level 속성을 사용하여 제목의 계층 구조를 정의하고 있습니다. 이는 시멘틱한 제목 요소를 사용할 수 없는 상황에서 유용합니다.

img 역할

요약 설명

img 역할은 웹 페이지에서 이미지 콘텐츠를 나타내는 데 사용됩니다. 이 역할은 시각적 정보를 전달하는 이미지를 설명하며, 보조 기술이 이러한 이미지를 사용자에게 올바르게 전달할 수 있도록 돕습니다. HTML의 <img> 요소는 자동으로 img 역할을 수행합니다. 이 역할은 특히 접근성 측면에서 중요한 역할을 하며, 적절한 대체 텍스트(alt 텍스트)를 제공하는 것이 핵심입니다.

W3C ARIA img
MDN ARIA img
UXKM : img element

기본 설명

  • img 역할은 이미지를 나타내며, HTML의 <img> 요소에 암시적으로 적용됩니다. 그러나 다른 요소(예: CSS 배경 이미지가 없는 <div> 등)를 이미지로 처리할 때 이 역할을 명시적으로 지정할 수 있습니다.
    보조 기술은 img 역할을 통해 이미지의 의미나 용도를 사용자에게 전달하며, 이때 대체 텍스트(alt 텍스트)가 중요한 역할을 합니다. 대체 텍스트는 이미지의 내용이나 기능을 설명하여 모든 사용자가 이미지의 의미를 이해할 수 있도록 돕습니다.
  • 시각적 정보가 중요하지 않은 장식용 이미지는 aria-hidden="true"를 사용하거나, 빈 대체 텍스트(alt="")를 지정하여 보조 기술이 이를 무시하도록 해야 합니다.
  • 적절한 사용

    모든 <img> 요소에 의미 있는 alt 속성을 제공하고, 비표준 마크업에서 이미지를 사용할 때는 role="img"aria-label을 명시적으로 지정해야 합니다. 장식용 이미지는 사용자에게 불필요한 정보를 제공하지 않도록 해야 합니다.

  • 중요한 점

    img 역할을 통해 웹 페이지의 시각적 콘텐츠를 명확하게 정의하고, 사용자 경험과 접근성을 모두 향상시킬 수 있습니다. 이를 통해 사용자는 시각적 정보를 효과적으로 이해하고, 필요한 내용을 효율적으로 탐색할 수 있습니다.

사용 시 주의사항

  • 시멘틱 마크업 사용

    모든 <img> 요소에 적절한 alt 속성을 제공해야 합니다. 이 속성은 이미지의 의미나 기능을 설명하며, 보조 기술이 이를 사용자에게 전달할 수 있도록 돕습니다.

  • 장식용 이미지 무시

    시각적 정보가 중요하지 않은 장식용 이미지는 aria-hidden="true"를 사용하거나, 빈 대체 텍스트(alt="")를 지정하여 보조 기술이 이를 무시하도록 해야 합니다

  • 비표준 마크업 사용 시 명시적 역할 지정

    <img> 요소 대신 다른 요소(예: CSS로 배경 이미지를 설정한 <div>)에 이미지를 사용할 때는, role="img"aria-label 또는 aria-labelledby를 사용해 이미지의 의미를 명확히 전달해야 합니다.

상속된 상태 및 속성

  • alt 속성

    이미지의 대체 텍스트를 지정하여, 보조 기술이 이 텍스트를 사용자에게 전달할 수 있도록 합니다.

  • aria-label

    이미지에 설명을 추가할 수 있는 속성으로, alt 속성 대신 사용할 수 있지만, 대부분의 경우 alt 속성이 선호됩니다.

  • aria-hidden

    장식용 이미지나 사용자에게 제공될 필요가 없는 이미지를 숨길 때 사용됩니다.

예시

잘못된 예시 - 대체 텍스트가 없는 이미지

이 예시는 중요한 다이어그램 이미지를 대체 텍스트 없이 사용하고 있으며, 이는 접근성에 부정적인 영향을 미칩니다. 모든 중요한 이미지에는 적절한 alt 속성을 제공해야 합니다.

(권장) 올바른 예시 - 대체 텍스트가 포함된 이미지

이 예시는 중요한 다이어그램 이미지를 설명하는 대체 텍스트와 함께 사용하여, 보조 기술이 이미지를 사용자에게 올바르게 전달할 수 있도록 했습니다.

명시적으로 img 역할 지정 예시

이 예시는 CSS 배경 이미지를 사용한 <div> 요소에 role="img"aria-label을 사용해 이미지의 의미를 지정하고 있습니다. 이는 <img> 요소를 사용할 수 없는 상황에서 유용합니다.

장식용 이미지 처리 예시

이 예시는 장식용 이미지를 나타내며, alt=""aria-hidden="true"를 사용하여 보조 기술이 이 이미지를 무시하도록 설정했습니다. 이로 인해 사용자는 불필요한 시각적 정보에 방해받지 않습니다.