【问题标题】:Logout route or function for accessibility in a SPASPA 中可访问性的注销路径或功能
【发布时间】:2019-06-06 23:41:13
【问题描述】:

如果我们使用有什么区别

  • 带有路由的链接:<a href="/logout">Logout</a>,或
  • 一个有功能的按钮:<button onclick="logout()">Logout</button>

在可访问性方面?

/logout 路由基本上只会重定向到/login。使用logout() 函数时也会发生同样的情况。

两者之间有什么优缺点吗?

【问题讨论】:

    标签: authentication accessibility single-page-application logout web-accessibility


    【解决方案1】:

    不是一个完整的答案,只是补充一些东西:

    您已经了解何时使用链接(导航)与按钮(基于 JS 的操作)的一般用例。

    这就是我通常在 SPA 中的想法:

    在登录/注销或表单提交的情况下,虽然“动作”可以导航到新页面但它是间接的,它首先需要由 SPA 处理和处理,并根据该 SPA 做出路由决定。 此外,允许在默认提供链接的新选项卡中打开登录/注销或将其设置为书签是没有意义的。

    另外想想你用注册或登录做什么,它们是按钮。

    所以在这种情况下我会选择一个按钮。

    【讨论】:

    • “允许在新标签页中打开登录/注销是没有意义的”。那讲得通。目前,SPA 有一个 /login 路由,显示登录表单。当对注销应用相同的“设计”时,这意味着/logout 路由应该显示注销按钮。我只能想象一个有用的场景:显示“你真的要注销吗?”确认页面,您必须单击“是”才能真正注销。但结论是:“真正的”注销操作发生在一个按钮和一个函数上。
    • 编辑: 我刚刚检查了 youtube 和 gmail 以及老式的 HTML gmail。对于所有 3 个应用程序,他们使用 a href 链接。 youtube 使用href=/logout,gmail 使用https://accounts.google.com/Logout 加上重定向链接、时间戳和安全令牌作为查询参数,HTML gmail 使用https://mail.google.com/mail/logout。然后所有网站将您重定向到“注销登录页面”或“登录页面”。
    • 对于登录点,我的意思是在您提供凭据后用于登录的表单提交按钮不是链接,请确保主屏幕上的登录按钮转到登录路径可以是链接在大多数情况下。与注销类似,如果需要,您可以按照您的建议设置注销路线,然后将注销设置为链接而不是按钮可能是有意义的。
    • 关于 gmail 使用“注销”链接的要点,在新标签页中打开链接时,他们会注销您并显示一些信息,这似乎没问题,因为在这种情况下它实际上是有意义的有一个可以在新标签页中打开的链接
    【解决方案2】:

    如果我们谈论的是单页应用程序,href 会重新加载您不想要的页面。你想要的是重新渲染页面。如果您使用的是框架,他们有“路由器”可以为您执行此操作,但如果您使用的是普通 DOM,我建议您使用“渲染”div 并让 logout() 进行重新渲染。

    【讨论】:

    • 是的,它是一个 SPA,这就是我在问题标题 ;-) 中提到 SPA 的原因。顺便提一句。 href 不一定会重新呈现页面。您可以监听它的点击事件并调用event.preventDefault() 并使用window.history.pushState 更改浏览器的地址栏。然而,您的回答并没有回答问题。
    猜你喜欢
    • 2013-05-10
    • 1970-01-01
    • 2016-06-26
    • 1970-01-01
    • 2015-08-02
    • 1970-01-01
    • 2020-03-26
    • 2011-07-29
    • 2023-04-02
    相关资源
    最近更新 更多