tree · 树形视图
依据 APG Tree View。两条最关键的设计:
① Roving tabindex:整棵树只占一个 Tab 位(当前节点 tabindex=0,其余 -1)
② ←→
展开/收起并带着焦点走(已收起时按 ← 回到父节点)
其余:↑↓ 移动 ·
HomeEnd 首末 ·
* 展开本层同级 · 空格 选中 ·
a-z 首字母跳转
1 · 文件树(试试键盘)
(焦点位置与选中项会显示在这里)
2 · 默认全部收起
对比:错写法 vs 本库写法
❌ 常见写法:靠"旋转"表示状态
三个节点长得一模一样:已展开的 src、收起的 components、叶子的 index.js 全是 ▸。旋转只能表达"变过",表达不了"现在是哪一态"。
✅ 本库:三态三种字形
tree.css 按 aria-expanded 给三种字形:▼ 展开 / ▶ 收起 / · 叶子。形状本身就是信息,不依赖动画。