側邊導覽 (Side Navigation)
- 新提案
- →
- 封閉測試
- →
- 公開測試
- →
- 已穩定
成熟度說明
- 新提案:未完成開發、請勿使用。
- 封閉測試:開發暫時性完成,可使用。可能仍有親和力或其他使用上問題待透過實測發現。
- 公開測試:開發暫時性完成,歡迎使用。具有完整親和力報告。
- 已穩定:開發完成、歡迎使用。應無任何親和力或使用上問題。
基本側邊導覽
- 單層子選單,可透過點擊或鍵盤展開/收合
- 以左側粗邊框標示目前頁面
HTML
<nav aria-label="側邊導覽" class="side-navigation">
<ul>
<li>
<a aria-current="page" href="#about">關於我們</a>
</li>
<li>
<button type="button" aria-expanded="false">最新消息</button>
<ul>
<li>
<a href="#news">新聞稿</a>
</li>
<li>
<a href="#event">活動公告</a>
</li>
<li>
<a href="#policy">政策更新</a>
</li>
</ul>
</li>
<li>
<a href="#question">常見問答</a>
</li>
<li>
<a href="#contact">聯絡我們</a>
</li>
</ul>
</nav>多層巢狀導覽
- 支援三層以上的巢狀結構
- 子層以縮排與左側邊線區分層級
HTML
<nav aria-label="側邊導覽" class="side-navigation">
<ul>
<li>
<a href="#about" aria-current="page">關於我們</a>
</li>
<li>
<button type="button" aria-expanded="false">服務項目</button>
<ul>
<li><a href="#online-application">線上申辦</a></li>
<li>
<button type="button" aria-expanded="false">表單下載</button>
<ul>
<li><a href="#application-form">申請表</a></li>
<li><a href="#consent-form">同意書</a></li>
<li><a href="#affidavit">切結書</a></li>
</ul>
</li>
<li><a href="#progress-inquiry">進度查詢</a></li>
</ul>
</li>
<li>
<a href="#regulations">法規資訊</a>
</li>
<li>
<a href="#contact">聯絡我們</a>
</li>
</ul>
</nav>CSS
.side-navigation:套用於<nav>容器aria-current="page":目前頁面連結,自動套用粗體與左側指示邊框
JavaScript
- 使用
side-navigation.js。 - JavaScript 選擇器為
.side-navigation,負責切換<button>的aria-expanded狀態。
親和力
- 使用原生
<nav>+<ul>+<button>傳達結構、階層與互動狀態 - 當前頁面同時以粗體與左側邊框指示,不僅依賴色彩
- 所有互動均可透過 Tab + Enter/Space 操作
- DOM 順序即為焦點順序,與視覺呈現一致
- 鍵盤焦點有清楚的外框指示
- 原生元素自帶角色;
aria-expanded傳達展開狀態;aria-current傳達目前頁面