aria-autocomplete 속성 값
-
none
자동 완성이 없음을 나타냅니다.
-
inline
자동 완성 텍스트가 필드 내에서 즉시 채워짐을 나타냅니다.
-
list
자동 완성 제안이 목록으로 제공됨을 나타냅니다.
-
both
자동 완성 텍스트가 필드 내에서 채워지며, 목록으로도 제안이 제공됨을 나타냅니다.
요약 설명위젯 속성(Widget Attributes)은 위젯의 동작, 외관, 상호작용 방식을 정의하는 속성을 의미합니다. 위젯은 웹 애플리케이션에서 사용자와 상호작용할 수 있는 요소를 나타내며, 이들 속성은 위젯이 어떻게 표시되고 작동하는지를 결정합니다. 웹 개발에서는 이러한 속성을 사용하여 다양한 사용자 인터페이스 요소를 설정하고 제어할 수 있습니다.
특히 장애가 있는 사용자들을 위한 접근성을 개선하기 위해 중요한 역할을 합니다.
요약 설명
aria-autocomplete
속성은 사용자가 입력한 값에 따라 시스템이 자동으로 완성하는 입력 필드의 동작을 정의합니다. 이 속성은 입력 중인 텍스트 필드에서 제공되는 자동 완성 제안을 설명하며, 사용자가 어떤 방식으로 선택할 수 있는지에 대한 정보를 제공하는 데 사용됩니다.WAI-ARIA 1.2 Specification (aria-autocomplete)
MDN Web Docs (aria-autocomplete)
자동 완성이 없음을 나타냅니다.
자동 완성 텍스트가 필드 내에서 즉시 채워짐을 나타냅니다.
자동 완성 제안이 목록으로 제공됨을 나타냅니다.
자동 완성 텍스트가 필드 내에서 채워지며, 목록으로도 제안이 제공됨을 나타냅니다.
텍스트 입력을 받는 HTML 요소로, aria-autocomplete
속성이 자주 사용됩니다.
여러 줄의 텍스트를 입력받는 HTML 요소로, aria-autocomplete
속성을 사용할 수 있습니다.
자동 완성 제안을 표시하는 컨테이너로 사용할 수 있습니다.
aria-autocomplete
는 자동 완성 기능이 활성화된 텍스트 입력 필드에만 사용해야 합니다.
none
, inline
, list
, both
중 상황에 맞는 값을 설정해야 합니다.
aria-autocomplete
속성은 보조 기술(예: 스크린 리더)에서 사용자가 입력 필드의 자동 완성 동작을 이해하고 사용할 수 있도록 도움을 줍니다.
자동 완성 제안을 키보드로 쉽게 탐색할 수 있도록 키보드 접근성을 고려해야 합니다.
aria-autocomplete
의 값으로 유효하지 않은 invalid-value
가 사용되었습니다.
속성 값은 none
, inline
, list
, both
중 하나여야 합니다.
이 예시는 자동 완성 기능이 없는 입력 필드를 나타냅니다.
aria-autocomplete="none"
을 사용하여 사용자에게 자동 완성이 없음을 명확히 알립니다.
aria-autocomplete="inline"
은 사용자가 입력하는 동안 자동 완성된 텍스트가 입력 필드에 바로 채워지는 경우를 나타냅니다.
사용자는 즉시 입력된 내용을 볼 수 있습니다.
aria-autocomplete="list"
는 사용자가 입력하는 동안 자동 완성 제안 목록이 표시됨을 나타냅니다.
사용자는 목록에서 제안을 선택할 수 있으며, aria-controls
속성으로 해당 제안 목록과의 관계를 정의합니다.
aria-autocomplete="both"
를 사용하여 사용자가 입력하는 동안 자동 완성 제안이 나타나고,
동시에 입력 필드에 자동 완성된 텍스트가 채워집니다.
aria-activedescendant
속성을 사용해 현재 활성화된 제안을 명확히 나타내고,
aria-label
을 통해 보조 기술이 제안 목록의 역할을 이해할 수 있도록 합니다.
이 예시에서는 사용자가 도시 이름을 입력할 때 자동 완성 제안을 제공합니다.
aria-autocomplete="list"
를 사용해 사용자가 선택할 수 있는 제안 목록을 제공합니다.
각 제안은 role="option"
으로 지정되어 있으며, 입력 필드와 제안 목록은 aria-controls
로 연결됩니다.
요약 설명
aria-checked
는 ARIA(Accessible Rich Internet Applications)에서 사용하는 상태(state) 속성으로, 주로 체크박스, 라디오 버튼, 토글 버튼과 같은 선택 가능한 UI 요소에 적용됩니다. 이 속성은 보조 기술(예: 스크린 리더)에 요소의 체크 상태를 전달하며, 요소가 선택되었는지, 선택되지 않았는지, 또는 혼합 상태(mixed)인지를 명확하게 나타냅니다.WAI-ARIA 1.2 Specification (aria-checked)
MDN Web Docs (aria-checked)
요소가 선택되었음을 나타냅니다.
요소가 선택되지 않았음을 나타냅니다.
체크박스가 일부만 선택된 상태를 나타냅니다(예: 트리 구조에서 일부 하위 항목만 선택된 경우).
속성이 없거나 설정되지 않은 경우, 보조 기술은 체크 상태를 특정할 수 없습니다.
체크박스 입력 필드.
라디오 버튼 입력 필드.
체크박스 역할을 하는 div 요소.
토글 버튼으로 사용될 수 있는 HTML 요소.
aria-checked
속성 값은 요소의 실제 상태와 일치해야 합니다.
예를 들어, 체크박스가 선택되지 않은 경우에는 aria-checked="false"
로 설정해야 합니다.
요소의 상태가 변경될 때마다 aria-checked
속성을 동적으로 업데이트해야 보조 기술이 이를 올바르게 인식할 수 있습니다.
기본적으로 체크 가능한 요소(예: <input type="checkbox">
)가 아닌 경우
role
속성을 사용해 해당 요소가 체크 가능한 것으로 인식되도록 해야 합니다.
aria-checked
는 토글 버튼에서 사용될 수 있지만,
이 경우 role="checkbox"
또는 role="switch"
를 추가하여 버튼이 체크 가능함을 명확히 해야 합니다.
이 예시는 토글 버튼에서 role="switch"
와 aria-checked
를 함께 사용하여
버튼이 활성화된 상태임을 보조 기술에 명확하게 전달합니다.
이 체크박스는 기본적으로 선택되지 않은 상태입니다.
aria-checked="false"
속성으로 이 상태를 보조 기술에 전달합니다.
이 예시는 커스텀 체크박스로,
div
요소에 role="checkbox"
를 설정하고 aria-checked
속성을 사용해 체크 상태를 보조 기술에 알립니다.
클릭 시 체크 상태가 반전되도록 설정되어 있습니다.
이 예시는 혼합 상태를 나타내는 체크박스를 구현한 것입니다.
예를 들어, 사용자가 트리 구조의 일부 항목만 선택했을 때 전체 선택 체크박스에 혼합 상태(aria-checked="mixed"
)를 표시할 수 있습니다.
이 예시는 라디오 버튼을 커스텀 방식으로 구현한 것입니다.
사용자가 하나의 옵션을 선택하면 다른 옵션의 aria-checked
속성이 false
로 변경되어 하나의 라디오 버튼만 선택되도록 합니다.
요약 설명
aria-disabled
속성은 ARIA(Accessible Rich Internet Applications)에서 사용하는 상태(state) 속성으로, 사용자 인터페이스(UI) 요소가 비활성화되었음을 보조 기술(예: 스크린 리더)에 전달합니다. 이 속성은 요소가 현재 상호작용할 수 없거나 사용할 수 없는 상태임을 나타냅니다. 비활성화된 요소는 시각적으로 표시될 수 있지만, 사용자와의 상호작용은 차단됩니다.
기본적으로 비활성화 기능을 제공하지 않는 요소에aria-disabled
를 사용하는 것이 적절하며, 이미disabled
속성을 지원하는 요소에서는 그 속성을 사용하는 것이 좋습니다.WAI-ARIA 1.2 Specification (aria-disabled)
MDN Web Docs (aria-disabled)
요소가 비활성화되어 있음을 나타냅니다. 사용자는 해당 요소와 상호작용할 수 없습니다.
요소가 활성화되어 있음을 나타냅니다. 사용자는 해당 요소와 상호작용할 수 있습니다. (기본적으로 false
값은 설정하지 않습니다.)
버튼 요소.
입력 필드 요소.
드롭다운 메뉴 요소.
링크 요소(종종 사용자가 클릭할 수 없는 상태를 표현할 때 사용합니다).
aria-disabled
는 대부분의 상호작용 가능한 UI 요소에 사용할 수 있습니다.
그러나, 본래 비활성화 기능을 지원하는 HTML 요소(예: button
, input
)에서는
기본 HTML 속성인 disabled
를 사용하는 것이 권장됩니다.
aria-disabled="true"
로 설정된 요소는 시각적으로도 비활성화된 상태임을 명확히 해야 합니다(예: 흐릿한 색상 처리).
aria-disabled
를 사용하면 해당 요소는 포커스를 받을 수 없습니다.
키보드 내비게이션 시 이러한 요소를 건너뛸 수 있도록 해야 합니다.
비활성화된 요소는 클릭이나 입력과 같은 상호작용을 완전히 차단해야 하며, 이벤트 리스너도 작동하지 않도록 처리해야 합니다.
본래 비활성화 기능을 지원하는 HTML 요소에서는 aria-disabled
대신 HTML disabled
속성을 사용하는 것이 더 적절합니다.
본래 비활성화 기능을 지원하는 input
요소에서는 HTML disabled
속성을 사용하는 것이 적절합니다.
이 속성은 자동으로 보조 기술과 시각적 표현을 처리합니다.
이 버튼은 aria-disabled="true"
로 설정되어 있으며, 사용자는 이 버튼과 상호작용할 수 없습니다.
스크린 리더는 이 상태를 사용자가 인식할 수 있도록 안내합니다.
이 예시는 div
요소를 버튼으로 사용하고 있으며, aria-disabled="true"
를 통해 이 요소가 비활성화 상태임을 나타냅니다.
시각적으로도 회색으로 표시하여 비활성화 상태를 표현하고 있습니다.
이 링크는 aria-disabled="true"
로 설정되어 있으며,
pointer-events: none;
을 사용해 클릭을 차단하고, 회색으로 표시하여 비활성화 상태를 시각적으로도 표현하고 있습니다.
이 예시는 버튼이 aria-disabled="true"
로 설정된 상태에서 클릭 이벤트를 감지하여 경고 메시지를 표시합니다.
이처럼 동적 상호작용에서 비활성화 상태를 반영해야 합니다.
이 예시는 select
요소가 비활성화된 상태임을 나타냅니다. 사용자는 드롭다운 메뉴를 열거나 선택할 수 없습니다.
요약 설명
aria-errormessage
속성은 입력 오류에 대한 사용자 정의 오류 메시지를 보조 기술(예: 스크린 리더)에 연결하는 데 사용되는 ARIA(Property) 속성입니다. 이 속성은 사용자에게 제공되는 오류 메시지의 내용을 지정하며, 보조 기술이 해당 오류 메시지를 사용자에게 읽어줄 수 있도록 합니다.
aria-errormessage
속성은 주로 폼 필드와 같이 사용자 입력이 필요한 요소에서 사용되며, 사용자가 잘못된 값을 입력했을 때 제공되는 오류 메시지와 연동됩니다. 이 속성은 오류 메시지가 표시될 때aria-invalid="true"
속성과 함께 사용해야 합니다.WAI-ARIA 1.2 Specification (aria-errormessage)
MDN Web Docs (aria-errormessage)
aria-errormessage
속성의 값은 사용자에게 표시될 오류 메시지를 포함하고 있는 요소의 ID
를 참조합니다.
이 값은 해당 오류 메시지 요소와 입력 필드를 연결하며,
보조 기술이 사용자가 입력 오류를 발생시켰을 때 해당 메시지를 읽어줄 수 있도록 합니다.
aria-errormessage
의 값은 반드시 오류 메시지를 포함하는 요소의 ID
여야 합니다.
"emailError", "passwordError", "usernameError"
입력 필드 요소.
여러 줄의 텍스트를 입력받는 HTML 요소.
드롭다운 메뉴 요소.
폼 요소 내의 다양한 입력 필드와 함께 사용.
aria-errormessage
속성은 오류 상태를 나타내는 aria-invalid="true"
속성과 함께 사용해야 합니다.
이 속성이 없다면 오류 메시지는 비활성 상태로 인식될 수 있습니다.
aria-errormessage
속성의 값은 오류 메시지를 포함하는 요소의 ID
를 가리켜야 합니다.
이 메시지는 사용자가 쉽게 이해할 수 있도록 명확하고 간결하게 작성해야 합니다.
입력 필드의 상태가 변경되어 오류 메시지가 업데이트될 경우,
보조 기술이 이를 인식할 수 있도록 aria-errormessage
속성의 값을 동적으로 업데이트해야 합니다.
오류 메시지 div 요소와 input
필드 사이에 aria-errormessage
속성이 사용되지 않았습니다.
이로 인해 보조 기술이 오류 메시지를 사용자에게 전달하지 못할 수 있습니다.
이 예시는 오류 메시지가 aria-errormessage
속성을 통해 input
필드와 올바르게 연결된 상황을 보여줍니다.
보조 기술은 이 설정을 통해 사용자에게 오류 메시지를 적절히 전달할 수 있습니다.
이 예시는 사용자가 잘못된 이메일 주소를 입력했을 때 표시되는 오류 메시지를 구현한 것입니다.
aria-errormessage
속성은 오류 메시지가 포함된 div
요소의 ID
를 참조하며,
aria-invalid="true"
속성과 함께 사용됩니다.
이 예시는 사용자가 폼을 제출할 때 입력 필드에 오류가 있으면 동적으로 오류 메시지를 표시하고,
오류가 발생한 필드로 초점을 이동하는 방법을 보여줍니다.
aria-errormessage
속성은 오류 메시지가 포함된 요소와 연결되어 있으며,
aria-invalid
속성은 사용자의 입력 상태에 따라 동적으로 업데이트됩니다.
첫 번째 오류가 발생한 필드로 초점이 이동하여 사용자가 쉽게 오류를 수정할 수 있도록 도와줍니다.
이 예시는 비밀번호 필드에 대한 오류 메시지를 표시하는 상황을 보여줍니다.
aria-errormessage
속성은 사용자에게 비밀번호 길이에 대한 구체적인 오류 메시지를 전달합니다.
요약 설명
aria-expanded
속성은 ARIA(Accessible Rich Internet Applications)에서 사용하는 상태(state) 속성으로, 사용자가 상호작용할 수 있는 UI 요소(예: 버튼, 링크, 메뉴)가 확장되었는지 또는 축소되었는지를 보조 기술(예: 스크린 리더)에 전달합니다.
이 속성은 주로 드롭다운 메뉴, 아코디언 패널, 트리 구조 등에서 사용되며, 사용자에게 현재 해당 요소의 상태를 명확하게 전달하는 역할을 합니다.WAI-ARIA 1.2 Specification (aria-expanded)
MDN Web Docs (aria-expanded)
요소가 확장된 상태임을 나타냅니다.
요소가 축소된 상태임을 나타냅니다.
속성이 없거나 설정되지 않은 경우, 보조 기술은 확장/축소 상태를 인식하지 않습니다.
확장 가능/축소 가능한 콘텐츠를 제어하는 버튼 요소.
드롭다운 메뉴 또는 서브메뉴를 확장/축소하는 링크 요소.
아코디언 패널이나 기타 확장 가능한 콘텐츠를 포함하는 컨테이너 요소.
aria-expanded
속성은 UI 요소의 실제 상태와 항상 일치해야 합니다.
예를 들어, 드롭다운 메뉴가 열리면 aria-expanded="true"
로 설정하고,
닫히면 aria-expanded="false"
로 설정해야 합니다.
사용자가 상호작용하여 요소의 상태가 변경될 때마다 aria-expanded
속성을 동적으로 업데이트해야
보조 기술이 이를 올바르게 인식할 수 있습니다.
aria-expanded
는 주로 버튼이나 링크와 같은 상호작용 가능한 요소에 사용되며,
이들이 제어하는 확장/축소 가능한 콘텐츠와 연결됩니다.
이 예시에서는 aria-expanded
속성이 전혀 사용되지 않았기 때문에,
보조 기술이 콘텐츠가 확장되었는지 여부를 알 수 없습니다. 이로 인해 접근성이 떨어질 수 있습니다.
이 예시는 aria-expanded
속성을 올바르게 사용하여,
버튼이 제어하는 콘텐츠가 확장되었는지 여부를 보조 기술에 전달합니다.
사용자가 클릭할 때마다 속성이 동적으로 업데이트되어 정확한 상태를 반영합니다.
이 예시는 아코디언 패널을 구현한 예시입니다. 각 패널은 버튼으로 제어되며,
aria-expanded
속성은 패널이 확장되었는지 또는 축소되었는지를 나타냅니다.
사용자가 패널을 클릭하여 상태를 변경할 때마다 aria-expanded
가 동적으로 업데이트됩니다.
이 예시는 링크 요소를 사용하여 서브메뉴를 확장/축소하는 예시입니다.
aria-expanded
속성이 링크에 적용되어, 사용자가 서브메뉴의 현재 상태를 알 수 있도록 합니다.
링크를 클릭할 때 서브메뉴의 상태가 동적으로 업데이트됩니다.
요약 설명
aria-haspopup
속성은 ARIA(Accessible Rich Internet Applications)에서 사용하는 속성(Property)으로, UI 요소가 팝업(popup)과 같은 추가적인 인터페이스 요소를 트리거할 수 있음을 보조 기술(예: 스크린 리더)에 알리는 데 사용됩니다. 이 속성은 메뉴, 대화 상자, 트리 리스트, 그리드 등의 팝업 요소가 사용자 상호작용에 의해 나타나거나 열릴 수 있음을 명확히 전달합니다.WAI-ARIA 1.2 Specification (aria-haspopup)
MDN Web Docs (aria-haspopup)
aria-haspopup 속성은 팝업의 유형을 지정하는 다양한 값을 가질 수 있습니다.
팝업이 없음을 나타냅니다.
팝업 메뉴가 있음을 나타냅니다(이 값은 menu 값과 동일합니다).
팝업 메뉴가 있음을 나타냅니다.
팝업 목록 상자가 있음을 나타냅니다.
팝업 트리뷰가 있음을 나타냅니다.
팝업 그리드가 있음을 나타냅니다.
팝업 대화 상자가 있음을 나타냅니다.
메뉴, 대화 상자, 그리드 등의 팝업 요소를 트리거하는 버튼 요소.
서브메뉴나 팝업을 트리거하는 링크 요소.
커스텀 위젯에서 팝업 요소를 트리거하는 컨테이너.
aria-haspopup
속성은 요소가 트리거하는 팝업의 유형에 따라 적절한 값을 선택해야 합니다.
예를 들어, 메뉴를 트리거하는 요소에는 aria-haspopup="menu"
를 사용합니다.
이 속성을 사용하여 보조 기술에 팝업의 존재를 알리면, 사용자가 키보드나 스크린 리더로 상호작용할 때 팝업이 나타날 수 있음을 알 수 있습니다.
aria-expanded
, aria-controls
등의 속성과 함께 사용하여 팝업의 상태(예: 열림/닫힘)와 관계를 명확하게 전달할 수 있습니다.
이 예시에서는 aria-haspopup
속성이 전혀 사용되지 않았기 때문에,
보조 기술이 버튼이 팝업 메뉴를 트리거할 수 있는지 여부를 알 수 없습니다.
이 예시는 aria-haspopup="menu"
속성을 사용하여,
버튼이 팝업 메뉴를 트리거할 수 있음을 보조 기술에 전달합니다.
이로 인해 접근성이 향상되며, 사용자가 버튼과 상호작용할 때 팝업 메뉴의 존재를 인식할 수 있습니다.
이 예시는 버튼이 팝업 메뉴를 트리거하는 기본적인 메뉴 구현을 보여줍니다.
aria-haspopup="menu"
는 버튼이 메뉴를 열 수 있음을 나타내며,
aria-expanded
속성은 메뉴가 열려 있는지 여부를 나타냅니다.
이 예시는 링크가 목록 상자(listbox)를 트리거하는 상황을 보여줍니다.
aria-haspopup="listbox"
속성을 통해 링크가 팝업 목록 상자를 열 수 있음을 명확히 나타냅니다.
이 예시는 버튼이 트리뷰(treeview)를 트리거하는 상황을 보여줍니다.
aria-haspopup="tree"
속성을 통해 이 버튼이 트리뷰를 열 수 있음을 보조 기술에 전달합니다.
이 예시는 버튼이 팝업 그리드(grid)를 트리거하는 상황을 보여줍니다.
aria-haspopup="grid"
속성을 통해 이 버튼이 그리드를 열 수 있음을 명확히 나타냅니다.
이 예시는 버튼을 클릭하여 대화 상자(dialog)를 트리거하는 예시입니다.
aria-haspopup="dialog"
는 이 버튼이 대화 상자를 열 수 있음을 나타내며,
대화 상자가 열리면 보조 기술은 이를 인식할 수 있습니다.
요약 설명
aria-hidden
속성은 ARIA(Accessible Rich Internet Applications)에서 사용하는 상태(state) 속성으로, 특정 UI 요소와 그 자식 요소들이 보조 기술(예: 스크린 리더)에 의해 무시되도록 설정합니다. 이 속성은 시각적으로는 표시되지만 보조 기술에서는 무시되어야 하는 콘텐츠를 숨기거나, 반대로 화면에는 보이지 않지만 보조 기술에서 접근 가능하게 할 때 사용됩니다.WAI-ARIA 1.2 Specification (aria-hidden)
MDN Web Docs (aria-hidden)
요소가 보조 기술에 의해 무시됨을 나타냅니다.
요소가 보조 기술에 의해 접근 가능함을 나타냅니다.(기본값으로 간주)
속성이 없으면 요소는 보조 기술에 의해 일반적으로 접근 가능합니다.
<div>
,
<span>
,
<section>
,
<header>
,
<footer>
,
<button>
,
<input>
,
<img>
등
aria-hidden="true"
를 사용하여 보조 기술에서 특정 콘텐츠를 숨길 때는,
해당 콘텐츠가 시각적으로는 유효하더라도 보조 기술 사용자에게 혼동을 주지 않도록 해야 합니다.
이미 다른 방식으로 제공된 콘텐츠나 보조 기술이 처리할 필요가 없는 장식적 콘텐츠에
aria-hidden="true"
를 적용하여 중복되는 내용을 피할 수 있습니다.
특정 상황에서만 보조 기술에 의해 무시되도록 하려면, aria-hidden
상태를 동적으로 업데이트할 수 있습니다.
이 예시는 aria-hidden="true"
속성을 상호작용 가능한 요소(버튼)에 적용했기 때문에,
이 버튼은 시각적으로는 보이지만 스크린 리더에서는 완전히 무시됩니다. 이는 사용자의 접근성을 해칠 수 있습니다.
상호작용 가능한 요소는 일반적으로 aria-hidden
을 사용하지 않습니다. 대신, 이러한 요소는 보조 기술에서도 접근 가능하도록 해야 합니다.
이 예시는 aria-hidden="true"
를 사용하여, 이 텍스트가 화면에는 보이지만 스크린 리더와 같은 보조 기술에서는 무시되도록 합니다.
이 방식은 장식적 텍스트나 중복된 정보에 유용합니다.
이 예시는 장식용 이미지를 스크린 리더에서 무시하도록 설정합니다.
이미지에 의미가 없으므로, aria-hidden="true"
와 빈 alt
속성을 함께 사용하여 보조 기술이 이 이미지를 무시하도록 합니다.
이 예시는 중복된 메뉴 항목을 스크린 리더에서 숨기는 방법을 보여줍니다.
aria-hidden="true"
를 사용하여, 보조 기술이 중복된 항목을 무시하도록 설정합니다.
이 예시는 버튼을 클릭하여 특정 콘텐츠의 가시성을 동적으로 전환하는 방법을 보여줍니다.
aria-hidden
속성은 동적으로 업데이트되어 보조 기술에서 해당 요소가 무시될지 여부를 결정합니다.
이 예시는 장식용 아이콘을 aria-hidden="true"
로 설정하여 스크린 리더에서 무시되도록 합니다.
스크린 리더는 별표 아이콘을 읽지 않고 "Save" 버튼만 사용자에게 전달합니다.
요약 설명
aria-invalid
속성은 ARIA(Accessible Rich Internet Applications)에서 사용하는 상태(state) 속성으로, 사용자 입력 필드의 현재 값이 유효하지 않음을 보조 기술(예: 스크린 리더)에 알리는 데 사용됩니다. 이 속성은 주로 폼 요소(예: 텍스트 입력, 체크박스 등)에서 사용되며, 사용자가 유효하지 않은 데이터를 입력했을 때 해당 요소에aria-invalid
속성을 설정하여 이를 명확히 표시합니다.WAI-ARIA 1.2 Specification (aria-invalid)
MDN Web Docs (aria-invalid)
필드의 현재 값이 유효함을 나타냅니다(기본값).
필드의 현재 값이 유효하지 않음을 나타냅니다.
문법 오류가 있음을 나타냅니다(예: 텍스트에서 문법 오류가 발생한 경우).
철자 오류가 있음을 나타냅니다(예: 텍스트에서 철자 오류가 발생한 경우).
텍스트 입력 필드 요소.
여러 줄의 텍스트 입력 요소.
드롭다운 메뉴 요소.
다양한 입력 필드를 포함하는 폼 요소.
aria-invalid
속성은 필드의 실제 유효성 상태를 정확하게 반영해야 합니다.
유효하지 않은 필드에 대해 aria-invalid="true"
를 설정하여 사용자가 문제를 인식할 수 있도록 해야 합니다.
aria-invalid
속성은 오류 메시지를 함께 제공하는 것이 일반적입니다.
이를 통해 사용자는 오류의 원인을 이해하고 수정할 수 있습니다.
사용자가 입력을 수정하고 유효성을 검토할 때마다 aria-invalid
상태를 동적으로 업데이트하여 보조 기술이 최신 상태를 반영하도록 해야 합니다.
이 예시는 aria-invalid="true"
속성이 설정된 상태에서 오류 메시지나 추가 설명이 제공되지 않기 때문에,
사용자는 필드가 왜 유효하지 않은지 이해할 수 없습니다.
이 예시는 오류 메시지를 함께 제공하여 사용자가 필드가 유효하지 않은 이유를 이해할 수 있도록 도와줍니다.
aria-errormessage
속성은 오류 메시지와 필드를 연결합니다.
이 예시는 사용자가 잘못된 이메일 주소를 입력했을 때 입력 필드에 aria-invalid="true"
를 설정하여 유효하지 않음을 표시합니다.
오류 메시지는 aria-errormessage
속성을 통해 제공됩니다.
이 예시는 사용자가 폼을 제출할 때 각 필드의 유효성을 동적으로 검사하여 aria-invalid
속성을 업데이트하는 방법을 보여줍니다.
유효하지 않은 필드에는 aria-invalid="true"
가 설정되고, 이에 따른 오류 메시지가 표시됩니다.
이 예시는 텍스트 입력 필드에서 문법 오류가 있는 경우를 나타냅니다.
aria-invalid="grammar"
는 문법 오류가 있음을 나타내며, 보조 기술이 이를 사용자에게 전달할 수 있도록 합니다.
이 예시는 텍스트 입력 필드에서 철자 오류가 있는 경우를 나타냅니다.
aria-invalid="spelling"
은 철자 오류가 있음을 나타내며, 보조 기술이 이를 사용자에게 알릴 수 있습니다.
이 예시는 장식용 아이콘을 aria-hidden="true"
로 설정하여 스크린 리더에서 무시되도록 합니다.
스크린 리더는 별표 아이콘을 읽지 않고 “Save” 버튼만 사용자에게 전달합니다.
요약 설명
aria-label
속성은 ARIA(Accessible Rich Internet Applications)에서 사용하는 속성(Property)으로, 요소에 접근할 때 보조 기술(예: 스크린 리더)에 의해 사용자에게 읽히는 레이블을 제공하는 역할을 합니다. 이 속성은 요소에 시각적인 레이블이 없거나, 화면에 표시된 텍스트와는 다른 레이블을 제공해야 할 때 사용됩니다. 또한, 버튼, 입력 필드, 링크 등 다양한 요소에 사용되며, 사용자의 경험을 일관되게 유지하면서 접근성을 높이는 데 중요한 역할을 합니다.WAI-ARIA 1.2 Specification (aria-label)
MDN Web Docs (aria-label)
요소에 대한 대체 텍스트로, 보조 기술이 이 텍스트를 사용자에게 읽어줍니다.
예) “Submit”, “Search”, “Close menu”.
버튼 요소.
텍스트 입력 필드 요소.
링크 요소.
다른 인터랙티브 요소와 함께 사용할 수 있는 컨테이너 요소.
aria-label
의 값은 명확하고 간결한 텍스트로 설정되어야 하며, 요소의 목적을 이해할 수 있도록 해야 합니다.
aria-label
을 사용하는 경우,
요소에 시각적인 레이블이 없다면 스크린 리더 사용자와 시각적인 사용자 간에 일관된 경험을 제공하도록 해야 합니다.
aria-label
을 사용하여 레이블을 설정할 때는 중복되는 레이블이 없도록 주의해야 하며,
필요할 경우 aria-labelledby
를 고려할 수 있습니다.
이 버튼에는 레이블이 제공되지만, 버튼의 시각적인 요소가 전혀 없어서 시각적인 사용자들은 버튼의 목적을 알 수 없습니다. 레이블을 추가했더라도, 시각적으로도 사용자가 버튼의 기능을 인식할 수 있도록 해야 합니다.
이 예시는 aria-label
속성을 사용해 보조 기술 사용자에게 "Submit Form"이라는 명확한 레이블을 제공하면서,
시각적인 사용자에게는 체크 아이콘을 통해 버튼의 기능을 인식할 수 있도록 설정합니다.
이 예시는 시각적인 텍스트 레이블이 없는 아이콘 버튼에 aria-label="Close"
를 추가하여,
보조 기술 사용자가 이 버튼의 목적을 이해할 수 있도록 합니다.
이 예시는 시각적인 레이블이 없고,
placeholder
텍스트가 레이블 역할을 하지 않는 검색 입력 필드에
aria-label="Search"
를 추가하여 보조 기술이 이 필드를 적절히 설명할 수 있도록 합니다.
이 예시는 링크의 시각적인 텍스트 대신, aria-label
을 사용하여 더 구체적인 설명을 제공합니다.
시각적인 텍스트는 "More info"이지만,
스크린 리더 사용자에게는 "Learn more about our services"라고 읽히도록 설정되었습니다.
이 예시는 가시적인 텍스트가 없는 영역에 aria-label
을 사용해 스크린 리더 전용 레이블을 제공합니다.
이 레이블은 "Navigation menu"로 설정되어 있어, 보조 기술 사용자가 이 영역의 목적을 이해할 수 있습니다.
요약 설명
aria-modal
속성은 ARIA(Accessible Rich Internet Applications)에서 사용하는 속성(Property)으로, 현재 요소(일반적으로 대화 상자(dialog))가 모달 대화 상자임을 보조 기술(예: 스크린 리더)에 알리는 데 사용됩니다.aria-modal
속성은 대화 상자가 모달임을 보조 기술에 전달하여, 사용자가 모달이 열려 있는 동안 다른 UI 요소와 상호작용할 수 없음을 명확히 알리는 중요한 ARIA 속성입니다.
이 속성은 포커스 관리, 백그라운드 콘텐츠 비활성화 등의 기능과 함께 사용하여 모달 대화 상자가 제대로 작동하도록 해야 합니다.aria-modal
속성을 올바르게 사용하면 모달 인터페이스의 접근성을 크게 향상시킬 수 있습니다.WAI-ARIA 1.2 Specification (aria-modal)
MDN Web Docs (aria-modal)
현재 대화 상자가 모달임을 나타냅니다.
대화 상자가 모달이 아님을 나타냅니다(보통 설정되지 않음).
모달 대화 상자로 사용될 수 있는 컨테이너 요소.
HTML5의 대화 상자 요소(이 요소에 aria-modal
을 추가해 모달로 설정 가능).
특정한 컨텐츠 영역을 모달로 설정할 때 사용.
aria-modal="true"
를 사용하면, 모달 대화 상자가 열려 있을 때 포커스가 모달 내부에만 머물도록 해야 합니다.
사용자가 포커스를 모달 외부로 이동할 수 없도록 보장해야 합니다.
모달 대화 상자가 열려 있을 때, 사용자는 배경에 있는 다른 UI 요소와 상호작용할 수 없어야 하며, 이 상태를 시각적으로도 명확히 표시해야 합니다.
모달 대화 상자에는 닫기 버튼을 제공해야 하며, Esc 키를 통해 모달을 닫을 수 있도록 하는 것이 일반적입니다.
이 예시에서는 모달 대화 상자가 aria-modal="true"
로 설정되어 있지만,
포커스 관리가 전혀 이루어지지 않았습니다.
이로 인해 사용자가 포커스를 모달 외부로 이동할 수 있게 되어, 모달의 목적이 손상될 수 있습니다.
이 예시는 aria-modal="true"
를 사용하여 포커스 관리가 제대로 된 모달 대화 상자를 구현한 것입니다.
사용자는 Esc 키를 사용해 모달을 닫을 수 있고, 모달이 닫히면 포커스가 원래 위치로 돌아갑니다.
이 예시는 버튼을 클릭하여 모달 대화 상자를 열고, 모달 내부에서만 포커스가 유지되도록 설정한 것입니다.
aria-modal="true"
속성은 대화 상자가 모달임을 명확히 나타내며,
사용자가 다른 UI 요소와 상호작용할 수 없도록 합니다.
이 예시는 사용자가 중요한 정보를 포함한 모달 대화 상자를 열고, 이를 확인한 후 닫는 기능을 제공합니다.
모달이 열리면 보조 기술은 aria-modal="true"
를 사용해 이 상태를 인식합니다.
이 예시는 모달이 열릴 때 백그라운드 콘텐츠를 비활성화하고, 보조 기술에서 이를 숨기는 방법을 보여줍니다.
모달이 열리면 백그라운드 콘텐츠에 aria-hidden="true"
를 설정하여 사용자가 모달 외부의 다른 콘텐츠와 상호작용할 수 없도록 합니다.
요약 설명
aria-multiline
속성은 ARIA(Accessible Rich Internet Applications)에서 사용하는 속성(Property)으로, UI 요소(예: 텍스트 입력 필드)가 여러 줄의 텍스트를 지원하는지 여부를 보조 기술(예: 스크린 리더)에 알리는 데 사용됩니다. 이 속성은 주로 단일 줄 입력과 여러 줄 입력을 구분할 필요가 있는 상황에서 사용됩니다.
기본적인 HTML 요소인textarea
에서는 암시적으로 적용됩니다.WAI-ARIA 1.2 Specification (aria-multiline)
MDN Web Docs (aria-multiline)
요소가 여러 줄의 텍스트를 지원함을 나타냅니다.
요소가 단일 줄의 텍스트만 지원함을 나타냅니다.
단일 줄 텍스트 입력 필드. 일반적으로 aria-multiline="false"
로 설정.
여러 줄 텍스트 입력 필드. 일반적으로 aria-multiline="true"
로 설정.
텍스트 입력이 가능한 커스텀 컨테이너.
aria-multiline
속성 값은 요소의 실제 동작과 일치해야 합니다.
여러 줄 입력이 가능한 경우 true
, 단일 줄 입력만 가능한 경우 false
로 설정합니다.
스크린 리더 등 보조 기술은 이 속성을 통해 사용자가 입력하는 필드가 여러 줄을 지원하는지 알 수 있으므로, 올바른 사용이 중요합니다.
textarea
와 같은 기본 HTML 요소는 이미 여러 줄을 지원하므로,
추가적으로 aria-multiline
속성을 설정할 필요는 없습니다.
이 예시에서는 단일 줄 텍스트 입력 필드에 aria-multiline="true"
를 설정했습니다.
그러나 실제로는 단일 줄만 지원하기 때문에 이 설정은 오해를 불러일으킬 수 있습니다.
이 예시는 단일 줄 텍스트 입력 필드에 aria-multiline="false"
를 설정하여, 필드의 실제 동작과 일치하는 상태를 유지합니다.
이 예시는 단일 줄 텍스트 입력 필드를 나타냅니다. aria-multiline="false"
로 설정되어 있으며,
보조 기술은 이 필드가 단일 줄 입력만 지원함을 인식합니다.
이 예시는 div 요소를 여러 줄 텍스트 입력 필드로 사용한 커스텀 구현입니다.
aria-multiline="true"
로 설정하여, 보조 기술이 이 필드가 여러 줄을 지원함을 알 수 있도록 합니다.
이 예시는 textarea
요소를 사용한 기본적인 여러 줄 텍스트 입력 필드입니다.
aria-multiline
속성은 기본적으로 true
로 간주되므로, 추가 설정 없이도 보조 기술은 여러 줄 입력을 인식합니다.
이 예시는 커스텀 입력 필드에서 여러 줄을 지원하는 상황을 보여줍니다.
contenteditable
속성과 함께 사용하여 사용자가 자유롭게 텍스트를 입력할 수 있도록 하며, 보조 기술은 이를 적절히 인식합니다.
요약 설명
aria-multiselectable
속성은 ARIA(Accessible Rich Internet Applications)에서 사용하는 속성(Property)으로, 사용자가 여러 항목을 선택할 수 있는 UI 요소임을 보조 기술(예: 스크린 리더)에 알리는 데 사용됩니다.
이 속성은 주로role="listbox"
또는role="grid"
같은 요소에서 사용되며, 이 속성은 다중 선택이 가능한 상황에서만true
로 설정해야 하며, 단일 선택만 가능한 경우에는 설정하지 않는 것이 좋습니다.WAI-ARIA 1.2 Specification (aria-multiselectable)
MDN Web Docs (aria-multiselectable)
요소에서 다중 선택이 가능함을 나타냅니다.
요소에서 다중 선택이 불가능함을 나타냅니다.
다중 선택이 가능한 리스트박스 요소.
다중 선택이 가능한 그리드 요소.
다중 선택이 가능한 트리뷰 요소.
aria-multiselectable
속성은 다중 선택이 실제로 가능한 경우에만 true
로 설정해야 합니다.
그렇지 않으면, 보조 기술 사용자에게 잘못된 정보를 제공할 수 있습니다.
이 속성은 주로 role="listbox"
, role="grid"
, role="tree"
와 같은 역할을 가진 요소에 사용됩니다.
이러한 역할과 함께 사용하여 보조 기술이 UI 요소의 다중 선택 가능 여부를 올바르게 인식할 수 있도록 합니다.
다중 선택이 가능하도록 설정할 때는, 사용자가 Shift 키나 Ctrl(Command) 키를 사용해 여러 항목을 선택할 수 있도록 해야 합니다.
이 예시는 aria-multiselectable="true"
를 사용하고 있지만,
여러 개의 옵션이 없는 상황에서는 다중 선택이 불가능하므로 이 속성을 설정할 필요가 없습니다.
다중 선택이 불가능한 경우, aria-multiselectable="false"
로 설정하여 보조 기술이 이를 올바르게 인식하도록 합니다.
이 예시는 다중 선택이 가능한 리스트박스를 구현한 것입니다.
aria-multiselectable="true"
속성을 사용하여 보조 기술이 사용자가 여러 옵션을 선택할 수 있음을 알 수 있도록 합니다.
이 예시는 다중 선택이 가능한 그리드를 구현한 것입니다.
aria-multiselectable="true"
속성을 통해 사용자가 여러 그리드 셀을 선택할 수 있음을 나타냅니다.
이 예시는 다중 선택이 가능한 트리뷰를 구현한 것입니다.
사용자는 aria-multiselectable="true"
로 설정된 트리뷰에서 여러 항목을 선택할 수 있습니다.