Files
shz-backend/docs/test-reports/job-fair/2026-07-25/bugs/BUG-008-enterprise-outdoor-job-dialog-accessibility.md

3.0 KiB
Raw Blame History

BUG-008企业端户外招聘会“报名岗位”弹窗筛选字段缺少语义关联

  • 严重级别P3弹窗表单可访问性问题
  • 状态:代码已修复,待测试环境浏览器复验
  • 环境test
  • 角色PC 企业端(已登录测试企业角色)
  • 入口:/shihezi/jobfair/jobfair/outdoorfair
  • 招聘会:id=7“2026年石河子市金秋就业援助户外招聘会”
  • 发现时间2026-07-25

复现步骤

  1. 在企业端户外招聘会列表中找到已通过报名的 id=7
  2. 点击“查看报名岗位”。
  3. 在弹出的“2026年石河子市金秋就业援助户外招聘会 - 报名岗位”窗口中查看“岗位名称”“学历要求”“工作经验”筛选字段。
  4. 查看 Chrome DevTools Issues/Console。

预期结果

弹窗内每个筛选字段都应有唯一 id/name,并与可见标签正确关联;读屏用户应能在弹窗中明确知道输入框和两个下拉框各自的用途。

实际结果

打开弹窗后 Chrome DevTools Issue 计数从列表基线的 1 个未关联标签/1 个无 id/name 字段增加为:

  • No label associated with a form field (count: 2)
  • A form field element should have an id or name attribute (count: 2)

只读 DOM 检查显示弹窗中的岗位名称原生 input 没有 idnamearia-labelaria-labelledby;学历和工作经验下拉原生控件虽有 id=education/experience,但没有 name 或显式 aria 字段关联。

浏览器证据

  • 页面截图:JF-EN-009-outdoor-registered-jobs-empty.png
  • accessibility snapshot 显示弹窗标题“报名岗位”,以及“岗位名称 :”“学历要求 :”“工作经验 :”字段。
  • GET /api/shihezi/cms/outdoor-fair/7/jobs?current=1&pageSize=10HTTP 200返回 total=0rows=[];数据为空不是请求失败,但空结果弹窗仍显示可用的筛选和“添加岗位”控件。
  • 控制台 IssueNo label associated with a form field (count: 2)
  • 控制台 IssueA form field element should have an id or name attribute (count: 2)
  • 页面只读 DOM 检查确认岗位名称输入字段没有 id/name/aria-label/aria-labelledby

影响范围

企业用户在维护户外招聘会报名岗位时,读屏和自动化工具无法稳定识别弹窗中的岗位名称筛选字段;该问题也会增加企业端招聘会功能的无障碍问题总量。

初步定位

问题位于户外招聘会报名岗位弹窗的查询表单字段配置,与 BUG-005 的列表筛选表单是不同组件,但表现同属字段属性/label 透传缺失。优先检查 shz-admin/src/pages/Jobfair/Outdoorfair 的报名岗位弹窗组件。

建议

为岗位名称、学历要求、工作经验字段补充稳定 id/name,并通过 Form.Item label、htmlForaria-labelledby 形成显式关联;空数据场景下保留筛选没有问题,但应同时给出清晰的空状态说明和维护权限提示。