# BUG-020:管理端户外招聘会参会岗位筛选字段缺少语义关联 - 严重级别:P3(可访问性与表单自动化兼容性问题) - 状态:代码已修复,待测试环境浏览器复验 - 环境:test - 角色:PC 监管管理员 - 入口:`/shihezi/jobfair/outdoor-fair/detail?id=12` → “参会岗位” - 发现时间:2026-07-25 ## 前置条件 使用测试环境监管管理员角色打开户外招聘会 `id=12` 详情,并切换到“参会岗位”页签。 ## 复现步骤 1. 打开“参会岗位”页签。 2. 观察岗位名称、企业名称、学历要求和工作经验筛选控件。 3. 在 Chrome DevTools Console/Issues 或无障碍树中检查这些字段。 ## 预期结果 每个岗位筛选字段都应有唯一、稳定的 `id/name`,并与可见标签建立语义关联;企业名称、学历要求和工作经验等下拉字段还应保留清晰的可访问名称。 ## 实际结果 页面加载后 Chrome DevTools 的表单 Issue 统计继续增加,并报告缺少标签关联和字段标识。岗位接口能够正常返回,但筛选表单的原生字段语义不完整。 ## 浏览器证据 - 页面截图:[JF-AD-010-admin-outdoor-jobs.png](../screenshots/JF-AD-010-admin-outdoor-jobs.png) - accessibility snapshot 显示“岗位名称”“企业名称”“学历要求”“工作经验”四个筛选控件,部分控件依赖占位文案“请选择或搜索企业/请选择”,未呈现稳定字段标识。 - Console 页面累计 Issue:`No label associated with a form field (count: 5)`、`A form field element should have an id or name attribute (count: 5)`;本页新增岗位名称、企业名称、学历要求和工作经验字段。 - `GET /api/shihezi/cms/outdoor-fair/12/jobs?current=1&pageSize=10`:HTTP 200,当前测试数据返回空列表;相关字典和企业选项接口也均 HTTP 200。 ## 影响范围 监管管理员使用读屏或自动化工具时难以准确定位岗位筛选条件,尤其是同一表单中存在多个下拉字段时,可能无法区分企业、学历和经验条件。 ## 初步定位 户外详情参会岗位页签的 Input、企业选择器和字典选择器没有统一传递 `id/name` 或标签关联属性。岗位查询接口正常,问题集中在前端筛选表单 DOM 语义层。 ## 建议 为四个筛选字段设置唯一 `id/name`,通过 `htmlFor` 或 `aria-labelledby` 关联标签,并为下拉选择器提供明确的可访问名称;修复后复查岗位列表、企业端岗位弹窗和管理端其他岗位查询页。