Hacker News 中文摘要

RSS订阅

GitHub 弃用 Toast 提示 -- GitHub no longer uses Toasts

文章摘要

Toast通知存在严重的无障碍访问问题,不建议使用。GitHub推荐采用其他更成熟、有效且无障碍的方式来与用户沟通。应根据具体使用场景选择更合适的UI方案,如表单提交反馈或任务完成提醒等。

文章总结

标题:关于Toast通知的可访问性问题及替代方案

概述

Toast通知是一种由用户或系统行为触发的小型矩形弹窗,通常出现在视窗左下角或右下角,并在预设时间后自动消失。然而,这种UI模式存在诸多可访问性和可用性问题,因此GitHub建议采用其他更成熟、有效且无障碍的用户沟通方式。

替代方案

Primer提供了多种通知用户的解决方案,建议根据具体场景选择:

  1. 简单操作成功
    如创建Issue后直接在列表中显示,无需额外提示。

  2. 复杂操作成功
    批量创建Issue等操作可采用:

    • 横幅通知(Banners)汇总操作结果
    • 分步展示内容的多阶段流程
  3. 操作失败
    根据情况使用横幅通知(被动显示错误)或对话框(主动中断提醒)。

  4. 表单提交

    • 简单表单:直接展示结果
    • 复杂表单:使用确认页或横幅说明数据处理情况
  5. 长时间任务
    通过横幅通知任务状态,并考虑邮件、应用推送等多渠道提醒。

可访问性隐患

Toast可能违反以下WCAG标准:

主要问题: - 2.2.1时间可调:需支持手动关闭 - 1.3.2有意义的顺序:DOM顺序应与触发逻辑一致 - 2.1.1键盘操作:所有交互控件需支持键盘访问 - 4.1.3状态消息:需适配辅助技术且不干扰用户

次要问题: - 文本缩放可能导致内容遮挡 - 焦点顺序可能混乱 - 代码实现需保持一致性

可用性问题

  1. 大屏显示:可能超出用户视线范围
  2. 多任务干扰:自动消失易被忽略
  3. 界面遮挡:可能覆盖底部重要按钮
  4. 屏幕放大镜:通知可能位于放大区域外
  5. 工作记忆负担:自动消失后无法回溯信息
  6. 横幅盲区:用户习惯性忽略常见弹窗
  7. 关联性断裂:通知与触发点距离过远
  8. 误关闭风险:键盘操作可能误关其他界面

结论

鉴于Toast在可访问性和用户体验方面的固有缺陷,建议优先采用横幅通知、对话框等更稳定的交互模式。设计时应始终考虑不同用户群体的实际使用场景,确保信息传达的有效性和包容性。

(注:原文中的外部链接和具体技术细节已作简化处理,保留核心建议框架)

评论总结

关于Toast通知的评论总结

支持取消Toast的观点

  1. Toast容易被忽略

    • "God knows how many messages are missed thanks to toasts" (codingjoe)
    • "easy to miss, at risk of layout issues" (xixixao)
  2. Toast干扰用户体验

    • "Every little action in Google Calendar has an associated toast... I can’t use my calendar app without these stupid toasts" (quamserena)
    • "They go away too quickly... and are too slow to keep up" (quamserena)

反对取消Toast的观点

  1. Toast对可访问性的影响

    • 有评论引用文章指出取消Toast可能对可访问性不利 (ChrisArchitect)
    • "Toasts as an audit trail of actions taken across the UI seems nice" (outlore)
  2. Toast作为非侵入式确认

    • "I like toasts as a non-obtrusive confirmation of an action" (bicx)
    • "They can convey small bits of information... but god have I missed a ton of notifications" (licorices)

其他观点

  1. Toast与Banner的区别

    • "Banners are just a different style of a 'Toaster'" (ardit33)
    • 有用户抱怨Banner的延迟问题 (projektfu)
  2. 技术改进建议

    • 建议浏览器原生支持Toast并提供更多自定义选项 (licorices)
    • 推荐Sonner作为Toast的良好实现 (outlore)
  3. 设计资源参考

    • 用户推荐参考Apple和Android的设计指南 (gherkinnn)
    • 提到GitHub Primer作为设计资源 (gherkinnn)

中立/调侃观点

  • "Modals, toasts. The UX set got very good at coming up with new words for pop-ups." (jollyllama)
  • "Any toast can be an inline message in my experience" (mohsen1)

总结:评论中对Toast的态度存在分歧,支持者认为其提供轻量级反馈,反对者则批评其易忽略和干扰性。同时,关于可访问性和技术改进的讨论也值得关注。