Files
shz-backend/docs/test-reports/job-fair/2026-07-25/bugs/BUG-028-crosscity-region-selector-not-keyboard-accessible.md

2.7 KiB
Raw Blame History

BUG-028跨域联合招聘会区域城市选择标签不是可访问交互控件

  • 严重级别P3区域筛选控件可访问性问题
  • 状态:代码已修复,待测试环境浏览器复验
  • 环境test
  • 角色PC 监管管理员、PC 企业端
  • 入口:/shihezi/jobfair/jobfair/crosscityfair → “区域管理”
  • 发现时间2026-07-25

复现步骤

  1. 分别以监管管理员和企业角色打开“跨域联合招聘会管理”。
  2. 进入“区域管理”页签,观察 9 个城市标签。
  3. 用鼠标点击“石河子市”。
  4. 观察页面显示“已选择 1 个区域”,再用键盘 Tab 键遍历页面或查看 Chrome DevTools 无障碍树和 DOM。

预期结果

城市筛选项应表现为可聚焦、可键盘操作、可被读屏识别的多选控件,并暴露当前选中状态(例如按钮/复选框语义和 aria-pressed/aria-checked)。

实际结果

鼠标点击可以改变页面状态为“已选择 1 个区域”,但城市标签在 DOM 中是:

<span class="ant-tag ant-tag-checkable ..."><span>石河子市</span></span>

该元素没有 role、没有 tabindexDOM tabIndex=-1)、没有 aria-checked/aria-pressed,在 DevTools 无障碍树中只显示为 StaticText,不能作为键盘焦点或标准选择控件使用。管理员和企业端均可复现同样结构。

浏览器证据

影响范围

鼠标用户可以完成选择,但键盘用户和读屏用户无法可靠发现、聚焦或切换城市,区域筛选不满足可访问交互控件的基本语义要求。问题同时影响监管管理员和企业端。

初步定位

shz-admin/src/pages/Jobfair/Crosscityfair/index.tsx 约第 279291 行使用 Tag.CheckableTag 渲染城市标签,只提供 onChange 和视觉样式,没有补充可访问的交互语义。该组件实现应在两个角色入口统一修复和验证。

建议

将城市选择项改为原生按钮/复选框,或为标签补充可聚焦、键盘事件和选中状态语义;同时确保焦点样式、批量选择和“清除筛选”操作对键盘/读屏可用。