钥匙要点
- 对于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在现实世界中的应用包括前端和后端开发。1)通过构建TODO列表应用展示前端应用,涉及DOM操作和事件处理。2)通过Node.js和Express构建RESTfulAPI展示后端应用。

JavaScript在Web开发中的主要用途包括客户端交互、表单验证和异步通信。1)通过DOM操作实现动态内容更新和用户交互;2)在用户提交数据前进行客户端验证,提高用户体验;3)通过AJAX技术实现与服务器的无刷新通信。

理解JavaScript引擎内部工作原理对开发者重要,因为它能帮助编写更高效的代码并理解性能瓶颈和优化策略。1)引擎的工作流程包括解析、编译和执行三个阶段;2)执行过程中,引擎会进行动态优化,如内联缓存和隐藏类;3)最佳实践包括避免全局变量、优化循环、使用const和let,以及避免过度使用闭包。

Python更适合初学者,学习曲线平缓,语法简洁;JavaScript适合前端开发,学习曲线较陡,语法灵活。1.Python语法直观,适用于数据科学和后端开发。2.JavaScript灵活,广泛用于前端和服务器端编程。

Python和JavaScript在社区、库和资源方面的对比各有优劣。1)Python社区友好,适合初学者,但前端开发资源不如JavaScript丰富。2)Python在数据科学和机器学习库方面强大,JavaScript则在前端开发库和框架上更胜一筹。3)两者的学习资源都丰富,但Python适合从官方文档开始,JavaScript则以MDNWebDocs为佳。选择应基于项目需求和个人兴趣。

从C/C 转向JavaScript需要适应动态类型、垃圾回收和异步编程等特点。1)C/C 是静态类型语言,需手动管理内存,而JavaScript是动态类型,垃圾回收自动处理。2)C/C 需编译成机器码,JavaScript则为解释型语言。3)JavaScript引入闭包、原型链和Promise等概念,增强了灵活性和异步编程能力。

不同JavaScript引擎在解析和执行JavaScript代码时,效果会有所不同,因为每个引擎的实现原理和优化策略各有差异。1.词法分析:将源码转换为词法单元。2.语法分析:生成抽象语法树。3.优化和编译:通过JIT编译器生成机器码。4.执行:运行机器码。V8引擎通过即时编译和隐藏类优化,SpiderMonkey使用类型推断系统,导致在相同代码上的性能表现不同。

JavaScript在现实世界中的应用包括服务器端编程、移动应用开发和物联网控制:1.通过Node.js实现服务器端编程,适用于高并发请求处理。2.通过ReactNative进行移动应用开发,支持跨平台部署。3.通过Johnny-Five库用于物联网设备控制,适用于硬件交互。


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3汉化版
中文版,非常好用

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

Dreamweaver CS6
视觉化网页开发工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

禅工作室 13.0.1
功能强大的PHP集成开发环境