<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은 반드시 역할을 명시하는 유일한 레이블을 가져야 함rolerole에는 요구되는 구현 내용들이 있음role을 적용한다는 것은 그러한 요구사항을 지켰다는 의미command, composite, input, landmark, range, roletype, section, sectionhead, select, structure, widget, windowapplication, article, cell, columnheader, definition, directory, document, feed, figure, group, heading, img, list, listitem, math, none, note, presentation, row, rowgroup, rowheader, (포커스를 잡을 수 없는)separator, table, term, toolbar, tooltipbutton, checkbox, gridcell, link, menuitem, menuitemcheckbox, menuitemradio, option, progressbar, radio, scrollbar, searchbox, (포커스를 잡을 수 있는) separator, slider, spinbutton, switch, tab, tabpanel, textbox, treeitemcombobox, grid, listbox, menu, menubar, radiogroup, tablist, tree, treegridlistbox는 하나 이상의 option을 포함alert, log, marquee, status, timeralertdialog, dialog랜드마크 태그와
role속성을 동시에 사용(예:<header role="banner">)하는 것을
태그 자체에서 landmark를 인식할 수 없는 보조공학기기를 위해 권장하는 경우도 있고,
반대로 보조공학기기에서 충돌을 일으킬 수 있으므로 지양하라는 경우도 있다.
어떤 게 맞는지 잘 모르겠다...
최소한의 접근성을 보장하는 가장 쉬운 방법은
태그를 적재적소에 사용하는 것이다.