<h2>
등의) 헤딩이나 레이블을 두는 것이 좋으며, 특히 같은 랜드마크가 페이지에 둘 이상 존재할 경우 서로를 구별할 수 있는 레이블이 반드시 필요함aria-labelledby
속성 활용aria-label
속성 활용lable
이 아니다!labelled
중간에 l
이 두 번 들어간다!role="search"
에 "페이지 탐색"
이라는 레이블을 달면, 스크린 리더는 "페이지 탐색 탐색"이라고 읽게 된다고 함role
은 ARIA 속성 중 하나로, 말 그대로 요소의 역할을 명시해주는 속성aria-
를 붙이지 않음role
이 있음role
도 있음role="banner"
<body>
바로 하위의 <header>
에 해당<article>
, <aside>
, <main>
, <nav>
, <section>
등의 하위 <header>
는 banner
로 간주 되지 않음<iframe role="document">
등)에서는 해당 요소 안에 banner
role이 있을 수 있음role="navigation"
<nav>
에 해당navigation
이 또 있다면, label도 동일하게 사용role="search"
<form>
또는 role="form"
)이 탐색 목적으로 만들어졌다면 해당 role을 사용할 것role="form"
<form>
에 해당<button>
, <input>
, <select>
, <textarea>
등의 semantic 태그를 사용할 것role="main"
<main>
에 해당<body>
에 main
을 부여하면 안 됨role="complementary"
<aside>
에 해당<main>
또는 role="main"
)과 연관 있는 보조 내용에 대해 사용role="region"
을 사용할 것role="contentinfo"
<body>
바로 하위의 <footer>
에 해당<article>
, <aside>
, <main>
, <nav>
, <section>
등의 하위 <footer>
는 contentinfo
로 간주 되지 않음role="region"
<section>
에 해당region
은 반드시 역할을 명시하는 유일한 레이블을 가져야 함role
role
에는 요구되는 구현 내용들이 있음role
을 적용한다는 것은 그러한 요구사항을 지켰다는 의미command
, composite
, input
, landmark
, range
, roletype
, section
, sectionhead
, select
, structure
, widget
, window
application
, article
, cell
, columnheader
, definition
, directory
, document
, feed
, figure
, group
, heading
, img
, list
, listitem
, math
, none
, note
, presentation
, row
, rowgroup
, rowheader
, (포커스를 잡을 수 없는)separator
, table
, term
, toolbar
, tooltip
button
, checkbox
, gridcell
, link
, menuitem
, menuitemcheckbox
, menuitemradio
, option
, progressbar
, radio
, scrollbar
, searchbox
, (포커스를 잡을 수 있는) separator
, slider
, spinbutton
, switch
, tab
, tabpanel
, textbox
, treeitem
combobox
, grid
, listbox
, menu
, menubar
, radiogroup
, tablist
, tree
, treegrid
listbox
는 하나 이상의 option
을 포함alert
, log
, marquee
, status
, timer
alertdialog
, dialog
랜드마크 태그와
role
속성을 동시에 사용(예:<header role="banner">
)하는 것을
태그 자체에서 landmark를 인식할 수 없는 보조공학기기를 위해 권장하는 경우도 있고,
반대로 보조공학기기에서 충돌을 일으킬 수 있으므로 지양하라는 경우도 있다.
어떤 게 맞는지 잘 모르겠다...
최소한의 접근성을 보장하는 가장 쉬운 방법은
태그를 적재적소에 사용하는 것이다.