题目重点:用正确元素表达文档与操作,解释语义对辅助技术、键盘和维护的作用。
题意与假设
这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。
- 讨论HTML基础,不把语义标签当SEO排名保证,也不随意给所有元素加ARIA。
解题路线
- 标题h1..h6按内容层级组织,main/nav/article等表达页面区域;section通常需要可识别主题,不仅为CSS造容器。
- 执行动作使用button,导航使用有href的a。原生元素带键盘与交互语义,div加click后需要补更多行为。
- 表单用label关联输入,图片alt按信息用途,装饰图可空alt;名称不是随便重复旁边文字。
- 语义仍需实际测试:Tab顺序、焦点、屏幕阅读器名称和结构。正确标签不自动保证颜色对比、布局与完整可访问性。
手动走一遍
“提交”用button而不是a无href;“查看详情页”用a href。页面多个区域可有合适标题,视觉字号大小不决定heading等级。
规模与取舍
语义选择没有统一算法成本;减少手写交互补丁能降低维护风险,SEO效果还取决于内容与可抓取性。
易错点与追问
容易失分的边界
- 所有div换section就叫语义化。
- ARIA替代原生元素全部行为。
- h1只是最大字号。
继续深挖
- button type默认行为为什么值得注意?
- 可访问名称与可见文本如何一致?
