电商商品列表必须用语义化html结构:用包裹,每项用并带唯一id;价格、按钮等需绑定语义标签;分页必须用;标题层级须严格遵循到顺序。

商品列表必须用 <ul></ul> 而不是 <div> 堆砌<p>屏幕阅读器对 <code><div> 块只读作“division”,无法识别这是商品集合;而 <code><ul></ul> 会明确播报“列表,共12项”,用户可快速跳过或逐项浏览。电商列表天然满足「项目间无顺序依赖」——价格排序、筛选结果都是动态重排的,不构成执行逻辑,所以一律用 <ul></ul>,别用 <ol></ol>。
常见错误:
- 用 <div class="product-grid"> 包裹所有商品卡片<br>
- 商品卡片内部用 <code><div class="product-item"> 而非 <code><li>
- 列表项缺失 <li> 标签,直接把 <article></article> 并列写在 <ul></ul> 里(HTML5 允许但语义断裂)
正确结构示例:
<article></article> 必须包裹每件商品,且带唯一 id
<article></article> 表示「可独立分发、可被 RSS 抓取、可单独链接分享」的内容单元——电商商品完全符合这一定义。它让屏幕阅读器用户按 A 键跳转到下一个商品,而不是在一堆 <div> 中手动听完整页。<p>关键约束:<br>
- 每个 <code><article></article> 必须有 id(如 id="product-1024"),否则键盘导航无法锚定
- <article></article> 内必须包含至少一个 <h3></h3> 或更高级标题(如商品名),不能只有图片和价格
- 禁止把整个商品列表塞进一个 <article></article> ——这会让辅助技术误判为“单篇长文”
错误写法:
<article><br><div class="product-item">...</div> <br><div class="product-item">...</div> <br></article>
价格、库存、按钮必须绑定语义化标签
纯视觉对齐的“价格 ¥299”文字,屏幕阅读器不会自动关联到对应商品;点击“加入购物车”按钮若只是 <div onclick="...">,键盘用户无法聚焦、读屏无法识别动作为“按钮”。<p>实操要点:<br>
- 价格用 <code><span aria-label="价格 299 元"></span> 或嵌入 <strong></strong> + aria-hidden="true" 配合视觉隐藏文本
- “缺货”状态必须用 <span aria-live="polite"></span> 动态更新,不能仅靠颜色变化
- 所有操作按钮必须是 <button type="button"></button>,禁用 <div role="button">(缺少原生焦点管理与空格/回车触发)<br>
- 每个“加入购物车”按钮需配 <code>aria-describedby="product-1024-desc",指向同商品内描述性文本(如“红色 M 码,库存 3 件”)
分页导航要用 <nav aria-label="商品列表分页"></nav> 包裹 <ol></ol>
分页链接存在明确顺序依赖:第 2 页必须在第 1 页之后,跳转逻辑不可互换,因此必须用 <ol></ol>,不是 <ul></ul>。单纯视觉上显示为圆点或省略号,不影响其语义本质。
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
易忽略细节:
- <nav></nav> 必须加 aria-label,否则多个导航区(如顶部菜单+分页)时读屏无法区分
- 当前页码要设 aria-current="page",而非仅靠 CSS 样式高亮
- “下一页”按钮需含 aria-label="下一页,共 42 页",提供上下文总量
- 禁止用 <a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b"></a> 实现分页切换——URL 不变会导致键盘用户反复滚动到页首
性能提示:服务端渲染分页时,确保 <ol></ol> 在 HTML 首屏输出,JS 动态加载分页控件会破坏初始可访问性。
最常被跳过的其实是标题层级:商品列表页的主标题应为 <h1></h1>,每个 <article></article> 内商品名为 <h3></h3>(因 <main></main> 下已有 <h2></h2> 如“女士连衣裙”分类标题),跳级会导致屏幕阅读器大纲错乱,用户找不到当前在哪一层。










