如果你買了一個前端課程,裡面的老師連 semantic html 都不會用,建議你趕快退錢換家。
無障礙 landmark 用來標記頁面上某個段落的情境語意,
讓用戶可以透過輔助科技導航到他們想去的段落。
部分 HTML 的用來標記段落的元素會自動建立 ARIA landmark。
正確的使用語意標籤會給予輔助科技用戶更多資訊。
HTML Element | 預設的 landmark role |
---|---|
aside | complementary 補充 |
footer | contentinfo 內容資訊 |
header | banner 橫幅 |
main | main 主題 |
nav | navigation 導航 |
section | region 區塊 |
頁面上所有需要被認知的內容都必須被包含進 landmark,
並且每個 landmark 應該要符合其情境,
這是最有效提供輔助科技用戶需要的資訊的方式。
簡單來說:
光是把 semantic html 寫對,這個網站的品質就好非常多了。
Step 1: 定義邏輯化架構
通常設計師會透過排版跟空間,將頁面拆分成數個區塊。
並根據需要定義那個區塊主要負責的邏輯。
Step 2: 標記該區塊的 landmark
根據該區塊的類型標記 landmark。
部分 landmark 在第一層級必須有,像是 banner,main,complementary,contentinfo。
landmark 可以巢狀,也就是說可以定義父子層。
Step 3: 區塊標籤
h1
-h6
),可以標注 aria-labelledby 作為標籤。Banner 通常作為跟 整個網站有關的內容,並且會在每個頁面的開頭。
整個網站的有關內容像是 logo
,sponsor
或是跟當前網站有關的搜尋工具。
iframe
或是 frame
元素),HTML header
標籤會有隱含的 banner role,但必須要直系於 body
底下。
如果在 article
,aside
,main
,nav
,section
底下則沒有預設隱含的 role。
complementary 是設計來補充主要內容的段落,跟主要內文屬於同樣層級,
但內容跟意義會跟主要內容有所區別。
使用 HTML aside
標籤會隱含 complementary
。
contentinfo 會在頁面的最下方,標記一些常見的資訊,通常被稱作頁面的 footer,
其中包含像是 copyrights, privacy 或是 accessibility 的聲明。
iframe
或是 frame
元素),HTML footer
標籤會有隱含的 contentinfo role,但必須要直系於 body
底下。
如果在 article
,aside
,main
,nav
,section
底下則沒有預設隱含的 role。
form 標示某個區塊內的物件會構成一個表單。
h1
-h6
)。button
,input
,select
,textarea
等,使用 HTML form
標籤且設有可達性名稱 (就是 aria-labelledby,aria-label 或是 title) 就會隱含 form
landmark。
Main 用來標示該頁的主要內容。
iframe
或是 frame
元素),使用 HTML main
標籤會隱含 main
。
Navigation landmarks provide a way to identify groups (e.g. lists) of links that are intended to be used for website or page content navigation.
Navigation 用來整合這個網站或是頁面用到的連結。
使用 HTML nav
標籤會隱含 navigation
。
Region 標記頁面上某個區塊對於用戶足夠重要,重要到需要提供導航到這個段落。
使用 HTML section
標籤且設有可達性名稱 (就是 aria-labelledby,aria-label 或是 title) 就會隱含 region
landmark。
Search 標示某個區塊內的物件會構成一個搜尋。