系统通知页核心是消息状态可追踪、可操作、可感知,须以语义化标签(如)、aria属性、服务端驱动状态同步及无障碍设计为基础构建。

系统通知页的核心不是排版美观,而是让每条消息的状态可追踪、可操作、可感知。结构必须从语义和交互出发,不能靠 div 堆砌。
用语义化标签定义每条消息的骨架
每条消息必须包裹在 或带 role="region" 的容器里,内部严格使用:
- 作为标题,不可加 onclick —— 若跳转,用 ;若展开摘要,用 并配 aria-expanded 和 aria-controls
- 显示时间,值必须含时区 ISO 格式,避免中文文本解析风险
- 未读态通过 aria-label="未读:系统维护通知" 声明,而非仅靠视觉颜色或角标
- 操作按钮统一用 ,禁用 span + click 模拟,确保键盘 Tab 可聚焦、Enter 可触发
状态同步必须由服务端驱动
未读数、已读标记、删除动作不能只靠 localStorage 缓存 ID 列表,而要以服务端返回为准:
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
- 页面加载时,接口返回完整消息列表 + 总未读数(unread_count)
- 用户点击“标记为已读”后,立即调用 API 更新服务端状态,成功后再更新 DOM 和本地缓存
- 多标签页间同步靠 Storage event 触发重新拉取未读数,但仅作轻量广播,不传消息体
- 分页需手动管理:滚动到底部时拉取下一页数据,并合并更新 total 和 unread_count
无障碍与焦点流不能妥协
视障用户依赖结构和 ARIA 属性理解上下文:
- 消息列表外层加 role="list",每条消息加 role="listitem"
- 关闭按钮必须有 aria-label="关闭「账户安全提醒」",图标加 aria-hidden="true"
- 动态插入新通知时,用 role="alert" aria-live="polite" 容器包裹,确保屏幕阅读器播报
- 禁止给 直接绑事件,也不用 cursor: pointer 却不提供键盘支持
时间显示与可追溯性绑定
不只是样式标签,是机器可读的时间锚点:
- 渲染“2 小时前”等相对时间时,统一基于 el.dateTime 计算,不解析中文文本
- 长按时间可被安卓设备识别并弹出“添加到日历”,前提是 datetime 值完整(含时分秒及时区)
- 服务端返回时间字段必须为 ISO 8601 格式,前端不做格式转换再塞进 datetime 属性
- 详情页链接中保留原始时间戳参数,确保用户从通知跳转后仍能定位上下文
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










