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

JavaScript核心数据类型在浏览器和Node.js中一致,但处理方式和额外类型有所不同。1)全局对象在浏览器中为window,在Node.js中为global。2)Node.js独有Buffer对象,用于处理二进制数据。3)性能和时间处理在两者间也有差异,需根据环境调整代码。

JavaScriptusestwotypesofcomments:single-line(//)andmulti-line(//).1)Use//forquicknotesorsingle-lineexplanations.2)Use//forlongerexplanationsorcommentingoutblocksofcode.Commentsshouldexplainthe'why',notthe'what',andbeplacedabovetherelevantcodeforclari

Python和JavaScript的主要区别在于类型系统和应用场景。1.Python使用动态类型,适合科学计算和数据分析。2.JavaScript采用弱类型,广泛用于前端和全栈开发。两者在异步编程和性能优化上各有优势,选择时应根据项目需求决定。

选择Python还是JavaScript取决于项目类型:1)数据科学和自动化任务选择Python;2)前端和全栈开发选择JavaScript。Python因其在数据处理和自动化方面的强大库而备受青睐,而JavaScript则因其在网页交互和全栈开发中的优势而不可或缺。

Python和JavaScript各有优势,选择取决于项目需求和个人偏好。1.Python易学,语法简洁,适用于数据科学和后端开发,但执行速度较慢。2.JavaScript在前端开发中无处不在,异步编程能力强,Node.js使其适用于全栈开发,但语法可能复杂且易出错。

javascriptisnotbuiltoncorc; saninterpretedlanguagethatrunsonenginesoftenwritteninc.1)javascriptwasdesignedAsalightweight,解释edganguageforwebbrowsers.2)Enginesevolvedfromsimpleterterterpretpreterterterpretertestojitcompilerers,典型地提示。

JavaScript可用于前端和后端开发。前端通过DOM操作增强用户体验,后端通过Node.js处理服务器任务。1.前端示例:改变网页文本内容。2.后端示例:创建Node.js服务器。

选择Python还是JavaScript应基于职业发展、学习曲线和生态系统:1)职业发展:Python适合数据科学和后端开发,JavaScript适合前端和全栈开发。2)学习曲线:Python语法简洁,适合初学者;JavaScript语法灵活。3)生态系统:Python有丰富的科学计算库,JavaScript有强大的前端框架。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

记事本++7.3.1
好用且免费的代码编辑器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境