# 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` 形成显式关联;空数据场景下保留筛选没有问题,但应同时给出清晰的空状态说明和维护权限提示。