LESSON-03 · TOPIC 01

nav aria-label

能在兩個 navigation landmark 共存時,提供可區分的功能名稱。

code-edit多頁導覽與原生表單|nav aria-label本頁只練一個責任

本頁只練什麼

能在兩個 navigation landmark 共存時,提供可區分的功能名稱。

多個無名 navigation 在 landmark 清單中無法分辨,鍵盤與語音使用者就無法快速選對。

要修改的檔案:files/starter/index.html

定位:先數 nav 數量,再依功能命名。|依 starter-1 定位,只修改「nav aria-label」的責任。

任務情境

先結果,再原理;完成後要能說出自己看見的證據。

現在的問題

landmark 清單出現兩個同名導覽。

起始狀態:兩個 nav 都沒有 aria-label。

完成後要看到

navCount=2,labels 非空且唯一。

驗收證據:navCount=2、labels 正確、unique=true

何時會用到

頁首主選單、頁尾快速連結或側邊目錄共存時。

常見混淆:aria-label 命名的是整個 nav,不是取代每個 a 的連結文字。

觀念與最小範例

這段程式是理解起點,不是要你直接跳過 Starter。

nav aria-label Named navigation landmark with aria-label

頁面有兩組導覽時,幫它們取不同的功能名字。

正式說法:nav 建立 navigation landmark;aria-label 可在多個同類 landmark 中提供可存取名稱。

主要 nav 使用 aria-label=主要導覽,頁尾 nav 使用 aria-label=頁尾導覽。

三步完成本主題

每一步都留下可觀察結果;如果沒看到,先看「卡住先查」。

  1. Step 1|先看見目前缺口,不急著貼答案。

    檔案:files/starter/index.html 定位:先數 nav 數量,再依功能命名。

    要做:先重新載入 Starter,記錄目前畫面、DOM、Computed、Console 或文件內容。

    預期:能指出「先數 nav 數量,再依功能命名。」目前的缺口。

    證據:保存 files/starter/index.html 的目前狀態,並指出下一步只會修改哪個檔案責任。

    卡住先查:確認開啟的是 files/starter/index.html,且定位到 先數 nav 數量,再依功能命名。。

  2. Step 2|只修改本主題的一個責任。

    檔案:files/starter/index.html 定位:先數 nav 數量,再依功能命名。

    要做:為兩個 nav 分別設定不同 aria-label,再讀取名稱清單。

    預期:navCount=2,labels 非空且唯一。

    證據:navCount=2、labels 正確、unique=true

    卡住先查:先數 nav 數量,再依功能命名。

  3. Step 3|重新載入並以證據驗收,不以『看起來差不多』判定完成。

    檔案:files/starter/index.html 定位:先數 nav 數量,再依功能命名。

    要做:重新整理頁面,再逐項比對預期結果與 evidence。

    預期:navCount=2,labels 非空且唯一。

    證據:navCount=2、labels 正確、unique=true

    卡住先查:先數 nav 數量,再依功能命名。

觀察示範

這個示範只讓你看懂概念,不會替你修改 Starter,也不會自動宣告完成。

nav aria-labelruntime fixture · read-only demo
本主題示範畫面:
首頁內容
聯絡資訊

驗收證據

勾選只是學習紀錄;真正完成仍要回到 Starter 的實際結果。

提示 1|方向

用功能命名,不用導覽一、導覽二。

提示 2|關鍵片段

兩個 nav 分別是主要與頁尾導覽。

提示 3|完整解答與原因

完整解答與原因:分別設為主要導覽與頁尾導覽,因為同類 landmark 需要可區分名稱。

完成後進入下一階段,或回到入口選下一個 topic。

開始 Starter →回到主題清單