最近在進行無障礙相關文檔翻譯的時候遇到了 landmark 的概念,在網(wǎng)上搜了下發(fā)現(xiàn)沒有相關的中文資料,因此寫一篇博客簡單介紹一下。
什么是 Landmark
Landmark
是一種用來表示網(wǎng)頁組織結構的方法。通常一個網(wǎng)頁可以被切分成幾個大塊
以一個視頻網(wǎng)站為例,網(wǎng)頁的最上方是一條banner,左側是一個導航欄,右側顯示視頻。網(wǎng)頁可以通過這種切分方式來分割出不同的功能區(qū)。當然在一個功能區(qū)內也可以遞歸地進行切分,這里先不展開。
對于一個視力障礙者,他無法像常人一樣理解從視覺角度傳達出的網(wǎng)頁結構信息,那么就需要網(wǎng)頁開發(fā)者預先將網(wǎng)頁的結構規(guī)劃好,并將結構信息寫在HTML代碼里,最終將網(wǎng)頁的結構信息通過讀屏軟件表達出來。
而landmark就是連接網(wǎng)頁結構信息和讀屏軟件的橋梁。網(wǎng)頁開發(fā)者通過landmark對網(wǎng)頁區(qū)域進行標注,讀屏軟件讀取landmark信息并傳達給視力障礙者。
如何使用 Landmark
事實上,在HTML5 landmark出現(xiàn)之前,就已經(jīng)有l(wèi)andmark的概念了。
landmark有以下幾種main,navigation,complementary,banner,contentinfo,form,region,search
。通過使用<div role="main">
就定義了一個main
landmark。
而在HTML5中定義了一些全新的標簽,并賦予他們隱式的landmark語義。
HTML5 Landmark主要有以下幾種
HTML Element | Landmark Role |
---|---|
<main> | main |
<nav> | navigation |
<aside> | complementary |
<header> | banner |
<footer> | contentinfo |
<form> | form |
<section> | region |
這些標簽本身就隱含著landmark的含義,也就是說<main>
和<div role="main">
是完全等價的。
對于search
landmark沒有定義專用的HTML標簽,通常使用<form role="search">
來實現(xiàn)。
也就是說,在上一節(jié)引用的網(wǎng)頁中
<header></header>
中,標識該部分是banner<nav></nav>
中,標識該部分是導航欄<main></main>
中,標識該部分是網(wǎng)頁的主要內容讀屏軟件會生成一系列的跳轉鏈接來幫助視力障礙者確定網(wǎng)頁的結構并迅速跳轉至需要的部分。
在HTML5之前,只能通過role屬性來定義landmark,HTML5推出的新標簽能夠在保持可訪問性的情況下簡化標記。但并不是每個用戶使用的輔助工具都支持最新的標準,因此許多教程推薦使用<main role="main">的寫法來同時兼容兩種標準。W3C的標準不鼓勵在已經(jīng)含有隱式語義的情況下使用role屬性,因為兩者語義沖突的情況下可能導致無法預計的表現(xiàn)。
區(qū)分同類型的 Landmark
有時候頁面中可能會有多個導航欄,分別有不同的作用。比如一個電商網(wǎng)站有一個主導航來跳轉到購物車、收藏夾等不同的頁面;還有一個產(chǎn)品導航來跳轉到電子產(chǎn)品、嬰兒產(chǎn)品。如何對兩者進行區(qū)分呢,這里需要使用aria-label
或者aria-labelledby
屬性。
<nav aria-label="主導航"> <ul> <li>主頁</li> <li>購物車</li> <li>收藏夾</li> </ul> </div> <nav aria-label="產(chǎn)品導航"> <ul> <li>嬰兒產(chǎn)品</li> <li>電子產(chǎn)品</li> <li>體育產(chǎn)品</li> </ul> </div>
這樣讀屏軟件會分別生成以下兩個鏈接
這樣就將不同的landmark區(qū)分開了。
使用讀屏軟件讀取 Landmark
為了更好地理解landmark,我嘗試使用讀屏軟件來測試網(wǎng)頁上的landmark。這里我使用的是Windows系統(tǒng)自帶的講述人。
按下Caps Lock + F5來顯示網(wǎng)頁中所有的landmark。
按下Caps Lock + N,可以看到講述人光標移動到了網(wǎng)頁的主要內容部分。
使用D或Shift + D可以在landmark間切換,同時會朗讀出每個landmark的信息。
這里可以看到有一個search
landmark,它在banner
landmark的內部,這就是landmark嵌套的情況。對于landmark嵌套有一系列的規(guī)則,感興趣的讀者可以自己了解。
總結
和單詞的原意一樣,landmark就像是一個網(wǎng)頁的許多個“入口”或“地標”。通過landmark標注網(wǎng)頁結構的信息,可以幫助視力障礙者通過讀屏軟件了解網(wǎng)頁的結構,并迅速到達需要的部分。
然而正如并非所有的讀屏軟件都支持HTML5 Landmark一樣,并非所有視力障礙者都了解landmark的概念并知道如何使用landmark。因此提供傳統(tǒng)的跳轉鏈接來跳過導航直接跳轉到內容仍然是有必要的。
以上就是淺析HTML5 Landmark的詳細內容,更多關于HTML5 Landmark的資料請關注腳本之家其它相關文章!