>这是一个非常普遍但经常未解决的可访问性问题:如果我不使用眼睛(和鼠标的手指向),那么我如何“专注于”某些东西以与之互动?我确定您知道的答案是通过程序化的重点。但是,这并不像将“焦点”元素合并到我们的设计中那么简单。有时,不是用户,而是用户代表用户的接口必须在不同区域之间移动。这就需要故意将重点管理集中在开发人员方面。
对于可访问性,即使是最简单的JavaScript驱动的交互式小部件,管理焦点至关重要,但是使用自动化的QA
工具几乎不可能进行正确的用法。这就是为什么我今天想带您几个简单的示例。>
在此示例中,我邀请您想象您已经“增强”了同一页面导航链接,以便您不要突然跳到链接的目标片段(#第1节,假设),而是将其轻轻地引入此目的地通过JavaScript卷轴动画。使用此技术时要注意的有关可访问性的重要信息是覆盖元素的默认功能的必要性。
event<span>.preventDefault();</span>
不链接。实际上,确定链接实际上正确将用户正确到页面片段的唯一方法是关闭JavaScript。好吧, >通过简单地链接到页面片段(就像JavaScript Off的一个人一样),浏览器本质上是
focus此片段。这是屏幕读取器输出和键盘交互现在基于的地方。通过对ScrollTop进行动画操作,不会进行这种聚焦操作,这意味着屏幕阅读器的输出和键盘交互从页面区域继续进行,而不再是视图。这是不好的。 补救症
注意:感谢Patrick和其他人在评论中指出的事实是,这应该使用“ -1”而不是“ 0”作为Tabindex值,我们现在已经更正了。 🎜>
我们的第二个任务是将JavaScript focus()方法包括在动画的回调中,确保动画结束后的片段焦点>。
>最后,最好像简单地链接到片段(例如http:// my-site/#Section1)那样记录我们在URL中的子页面位置。这样,我们就可以将地址复制为指向特定部分的链接(即我们可以“深链接”)。在焦点()发生之后包括以下行:<span><span><span><section</span> id<span>="section1"</span> tabindex<span>="-1"</span>></span> </span> ... <span><span><span></section</span>></span></span>
当然,您将根据相应链接的HREF为任何变量替换“第1节”,减去#。
<span>document.getElementById('section1').focus();</span>
>一个小的Codepen演示在下面嵌入。尝试将其与仅作为惯常键盘用户的tab和Shift Tab使用。
<span>window.location.hash = 'section1';</span>
请注意,我们在JavaScript中即时添加了Tabindex属性。现在,我们将要滚动到的部分(片段)集中到了我们所感知的位置不仅仅是视觉效果。也就是说,我应该在转到新部分后按TAB键,我将集中该部分中的下一个焦点元素;在下面的示例中,超链接读取“ heydonworks.com”。
>event<span>.preventDefault();</span>
>如果我们不专注于第1节,请按TAB键将关注插图链接之后的下一个元素,该链接将将视口跃回我们的导航块。换句话说,键盘用户将返回第一方。
><span><span><span><section</span> id<span>="section1"</span> tabindex<span>="-1"</span>></span> </span> ... <span><span><span></section</span>></span></span>
这是另一个小例子。让我们假装用户按下
为了使打开此按钮可访问,我们应该以与最后一个示例中的页面片段相同的方式进行焦点()对话框。使用jqueryui,对话框的第一个按钮(在我们的情况下为“确认”)将集中在集中。其他实现将对话容器集中。无论哪种方式,用户都可以通过编程方式发送到正确的位置。 >问题是:“对话框关闭时会集中注意力?”如果我们什么也不做,新隐藏的对话框一定会失去焦点,但什么都不会取代。在许多用户代理中,这意味着默认情况下
焦点是使用户通过文档再次找到自己的位置。 >重新集中打开对话框的元素是更合乎逻辑的。这很容易通过将DOM节点保存在内存中或在其上写下标记以供以后使用,例如:<span>document.getElementById('section1').focus();</span>
>在对话框的结尾()方法的末尾,我们只会集中原始元素:
>大多数屏幕读取器重新集中在按钮时,都会宣布页面的标题,然后宣布焦点按钮。这样,您知道自己在哪里。使用此方法的对话框的一个示例可以进行测试。
<span>window.location.hash = 'section1';</span>
结论
<span><span><span><a</span> href<span>="#whatever"</span>></span>scroll to section 'whatever'<span><span></a</span>></span></span>
>还有一件事:如果您曾经负责使用使用ember.js或angularjs构建的一个页面应用程序,请使用JavaScript focus()方法的代码库。此类应用程序完全使用“视图”完全重写导航;单一页面的动态重建。如果没有一些仔细的焦点管理,以这种方式重建DOM很快就可以很快弄清可访问性。如果您的GREP发现不到几个.cocus实例,则可能有很多工作要做。
>>在学习时如何保持专注?
>
>我如何改善工作的注意力?您的任务并根据其重要性和紧迫性对它们进行优先级。定期休息以避免倦怠也很有帮助。此外,最大程度地减少了分心,例如关闭设备上不必要的通知,可以帮助您专注于任务。>睡眠如何影响注意力和浓度?
睡眠在认知功能中起着至关重要的作用。缺乏睡眠会损害关注,专注和决策能力。因此,获得足够的质量睡眠对于保持良好的专注和集中度至关重要。>
>有些共同的注意力,我如何避免它们?常见的干扰包括社交媒体,电子邮件和不必要的通知在您的设备上。为了避免这些,您可以设置特定时间检查电子邮件和社交媒体。关闭不必要的通知也可以帮助最大程度地减少干扰。
>以上是学习焦点()的详细内容。更多信息请关注PHP中文网其他相关文章!