51 lines
3.0 KiB
Markdown
51 lines
3.0 KiB
Markdown
|
|
# 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` 没有 `id`、`name`、`aria-label` 或 `aria-labelledby`;学历和工作经验下拉原生控件虽有 `id=education/experience`,但没有 `name` 或显式 `aria` 字段关联。
|
|||
|
|
|
|||
|
|
## 浏览器证据
|
|||
|
|
|
|||
|
|
- 页面截图:[JF-EN-009-outdoor-registered-jobs-empty.png](../screenshots/JF-EN-009-outdoor-registered-jobs-empty.png)
|
|||
|
|
- accessibility snapshot 显示弹窗标题“报名岗位”,以及“岗位名称 :”“学历要求 :”“工作经验 :”字段。
|
|||
|
|
- `GET /api/shihezi/cms/outdoor-fair/7/jobs?current=1&pageSize=10`:HTTP 200,返回 `total=0`、`rows=[]`;数据为空不是请求失败,但空结果弹窗仍显示可用的筛选和“添加岗位”控件。
|
|||
|
|
- 控制台 Issue:`No label associated with a form field (count: 2)`。
|
|||
|
|
- 控制台 Issue:`A form field element should have an id or name attribute (count: 2)`。
|
|||
|
|
- 页面只读 DOM 检查确认岗位名称输入字段没有 `id/name/aria-label/aria-labelledby`。
|
|||
|
|
|
|||
|
|
## 影响范围
|
|||
|
|
|
|||
|
|
企业用户在维护户外招聘会报名岗位时,读屏和自动化工具无法稳定识别弹窗中的岗位名称筛选字段;该问题也会增加企业端招聘会功能的无障碍问题总量。
|
|||
|
|
|
|||
|
|
## 初步定位
|
|||
|
|
|
|||
|
|
问题位于户外招聘会报名岗位弹窗的查询表单字段配置,与 [BUG-005](./BUG-005-enterprise-outdoor-filter-accessibility.md) 的列表筛选表单是不同组件,但表现同属字段属性/label 透传缺失。优先检查 `shz-admin/src/pages/Jobfair/Outdoorfair` 的报名岗位弹窗组件。
|
|||
|
|
|
|||
|
|
## 建议
|
|||
|
|
|
|||
|
|
为岗位名称、学历要求、工作经验字段补充稳定 `id/name`,并通过 Form.Item label、`htmlFor` 或 `aria-labelledby` 形成显式关联;空数据场景下保留筛选没有问题,但应同时给出清晰的空状态说明和维护权限提示。
|