首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【译】W3C WAI-ARIA最佳实践 -- 控件

这样的选择模型被称之为 "选择跟随焦点"。具有选择跟随焦点在某些情况下非常有用,但会严重降低其他情况中的可访问性。...使用声明属性的文件目录树视图示例: 文件选择树,示范如何明确地定义 aria-level, aria-posinset 和 aria-setsize 的值。...备选选择模型 - 移动焦点时不按住 Shift 或 Control 辅助键,会取消选中节点,聚焦的节点除外: Shift + Down Arrow: 将焦点移到下一个节点,并且切换下一个节点的选择状态。...Shift + Up Arrow: 将焦点移到上一个节点,并且切换上一个节点的选择状态。 Control + Down Arrow: 不改变选择状态,将焦点移动到下一个节点。...选择跟随焦点在某些情况下非常有用,在其他情况下则会严重降低可访问性。

4.6K30

一网打尽面试中常被问及的8种数据结构

节点由一个称为上一个的附加指针组成,指向上一个节点。 循环链接列表—链接列表,其中头的上一个指针指向尾部,尾号的下一个指针指向头。...5.哈希表 哈希表是一种数据结构,用于存储具有与每个键相关联的键的值。此外,如果我们知道与值关联的键,则它有效地支持查找。因此,无论数据大小如何,插入和搜索都非常有效。...6.树 树是一种层次结构,其中数据按层次进行组织并链接在一起。此结构与链接列表不同,而在链接列表中,项目以线性顺序链接。 在过去的几十年中,已经开发出各种类型的树木,以适合某些应用并满足某些限制。...7.堆 堆是二叉树的一种特殊情况,其中将父节点与其子节点的值进行比较,并对其进行相应排列。 让我们看看如何表示堆。堆可以使用树和数组表示。图7和8显示了我们如何使用二叉树和数组来表示二叉堆。...8.图 一个图由一组有限的顶点或节点以及一组连接这些顶点的边组成。 图的顺序是图中的顶点数。图的大小是图中的边数。 如果两个节点通过同一边彼此连接,则称它们为相邻节点。

8210
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    每个程序员都必须知道的8种数据结构

    节点由一个称为上一个的附加指针组成,指向上一个节点。 · 循环链接列表—链接列表,其中头的上一个指针指向尾部,尾号的下一个指针指向头。...5.哈希表 哈希表是一种数据结构,用于存储具有与每个键相关联的键的值。此外,如果我们知道与值关联的键,则它有效地支持查找。因此,无论数据大小如何,插入和搜索都非常有效。...6.树 树是一种层次结构,其中数据按层次进行组织并链接在一起。此结构与链接列表不同,而在链接列表中,项目以线性顺序链接。 在过去的几十年中,已经开发出各种类型的树木,以适合某些应用并满足某些限制。...7.堆 堆是二叉树的一种特殊情况,其中将父节点与其子节点的值进行比较,并对其进行相应排列。 让我们看看如何表示堆。堆可以使用树和数组表示。图7和8显示了我们如何使用二叉树和数组来表示二叉堆。 ?...8.图 一个图由一组有限的顶点或节点以及一组连接这些顶点的边组成。 图的顺序是图中的顶点数。图的大小是图中的边数。 如果两个节点通过同一边彼此连接,则称它们为相邻节点。

    1.4K10

    windows10切换快捷键_Word快捷键大全

    PS: 借助触摸键盘,按下 Ctrl 键即可看到一些快捷方式。 以下是 Windows 10 中内置的某些 Microsoft 应用中常见的快捷键。...) Caps Lock + Ctrl + 向右键 转到下一个同级(仅当应用提供结构导航时) Caps Lock + Ctrl + 向左键 转到上一个同级(仅当应用提供结构导航时) Caps Lock +...移动到应用或网页中的下一个或上一个字符 空格键 激活要使用的项目,如按钮或文本框 Enter 如果受支持,请在某个项目上执行辅助操作 Ctrl + 向左键和 Ctrl + 向右键 移动到下一个或上一个字词...Ctrl + Alt + 向右键或向左键 移动到行中的下一个或上一个单元格 Ctrl + Alt + 向上键或向下键 移动到列中的下一个或上一个单元格 Caps Lock + F5 通知在表格中的位置...进入选项卡后,每个功能按键周围又会显示大写祖母或字母组合,按下执行功能或进入下一级菜单。 如果记住了某个选项卡对应的字母,比如“设计”对应的G,就可以同时按Alt + G快速实现。

    5.5K10

    学会这14种模式,你可以轻松回答任何编码面试问题

    在某些情况下,窗口大小保持不变,而在其他情况下,窗口大小会增大或缩小。...在某些情况下,你不应该使用"两指针"方法,例如在单链列表中,你不能向后移动。何时使用快速和慢速模式的一个例子是,当你尝试确定链接列表是否是回文。...此模式一次反转一个节点,其中一个变量(当前)指向链接列表的开头,而一个变量(上一个)将指向你已处理的上一个节点。 ...以锁定步骤的方式,你可以通过将当前节点指向上一个节点来反转该节点,然后再移动到下一个节点。另外,你将更新变量" previous"以始终指向您已处理的上一个节点。...如何确定何时使用此模式: 如果要求你在不占用额外内存的情况下反向链接列表 链表模式就地反转的问题: 撤消子列表(中) 反转每个K元素子列表(中) 7、Tree BFS 该模式基于广度优先搜索(BFS)技术来遍历树

    2.9K41

    代码面试

    在某些情况下,您不应该使用“两指针”方法,例如在单链列表中,您不能向后移动。何时使用快速和慢速模式的一个示例是当您试图确定链接列表是否为回文式时。...以锁定步骤的方式,您可以通过将当前节点指向上一个节点来反转该节点,然后再移动到下一个节点。另外,您将更新变量“ previous”以始终指向您已处理的上一个节点。...如何确定何时使用此模式: 如果要求您在不使用额外内存的情况下反向链接列表 链表模式就地反转的问题: 撤消子列表(中) 反转每个K元素子列表(中) 模式七:树的宽度优先搜索 此模式基于广度优先搜索(BFS...)技术来遍历树,并使用队列来跟踪某个级别的所有节点,然后再跳转到下一个级别。...如何识别Tree DFS模式: 如果系统要求您按顺序,预顺序或后顺序DFS遍历树 如果问题需要在节点更靠近叶子的位置进行搜索 具有Tree DFS模式的问题: 路径数总和(中) 求和的所有路径(中)

    1.8K31

    MindManager2022序列号密钥解压安装程序教程

    ,选择自定义设置 image.png 选择自己的安装目录 image.png 创建桌面快捷方式 image.png 4、等待安装, 安装完成后,先不要打开 image.png 选择桌面快捷方式右键-属性...二、作图快捷键 ① Enter 插入新主题(同级向下) ② Shift+Enter插入新主题(同级向上) ③ Ctrl+Enter或Shift+Insert 插入副主题 ④ Ctrl+Shift+Insert...添加上级主题 ⑤ Ctrl+Shift+Enter插入标注主题,将标注添加到导图中的任何主题或关系线中。...⑩ Ctrl+Shift+R在导图中的两个主题之间插入关系。 11 Ctrl+Shift+J插入一个可用于容器或分隔器的形状。 12 Ctrl+Shift+D将当前日期和/或时间添加到主题或便笺。...三、导航 ① 方向键:选择上方,下方,左侧或右侧的主题(地图) ② 方向键:沿箭头方向(上下左右)微调至所选主题(流程图) ③ Tab/Shift+Tab选择下一个主题/上一个主题 ④ Home 移至同级主题顶部

    9.5K10

    React核心技术浅析

    React Diffing"Diffing"即“找不同”, 就是解决上文引出的React的核心目标——如何通过对比新旧虚拟DOM树, 以在最小的操作次数下将旧DOM树转换为新DOM树.在算法领域中, 两棵树的转换目前最优的算法复杂度为...;通过设置 key 属性来标识一组同级子元素在渲染前后是否保持不变.在实践中, 以上两个假设在绝大多数场景下都成立.2.1 Diffling算法描述不同类型的元素/组件当元素的标签或组件名发生变化, 直接卸载并替换以此元素作为根节点的整个子树..., 并在浏览器空闲时交由浏览器执行这些工作单元, 每个执行单元执行完毕后, 浏览器都可以选择中断渲染并处理其他需要更高优先级处理的工作.浏览器中提供了 requestIdleCallback 方法实现此功能..., 当wipFiber树构建完成后, fiberRoot.current 将从currFiber树的根节点切换为wipFiber的根节点, 以完成更新操作.3.1 基于Fiber的调度——时间切片在2.2...Hook的实现代码, 有助于理解在执行 setState 方法后都发生了什么:function useState(initial) { // 判断上一次渲染是否存在此Hook,如果存在就使用上一个state

    1.6K20

    从编程小白到全栈开发:操控浏览器

    这张图中的每一个方框代表的HTML标签节点,我们叫它DOM节点(Document Object Model,文档对象模型),所以这一整棵树就叫做DOM树了。...所以当你拿到设计师给你的页面平面设计稿的时候,别急着写代码,你首先需要分析一下页面的结构,在脑海中想象一下如何叠出这个页面的纸片模型或DOM树,这样你在写代码的时候就会比较胸有成竹,更有效率。...,直接使用,如下所示: alert('Hello, world'); 我们来看一下在开发者工具控制台中输入后的效果: ?...document 说到要操作这棵DOM树,首先不得不谈的就是如何去定位DOM节点,在这棵节点众多的树上,如何精准的找到我们想访问或操作的DOM节点,是头等重要的事情,就像打靶的话首先得找到正确的靶子才行啊...好,我们现在大致了解了这样一种定位机制的原理,那下面来看一下,如何在实际编码中使用这种选择器查找定位我们需要的DOM节点。

    68530

    Win10 快捷键大全(史上最全)「建议收藏」

    + 向左键 将光标移动到上一个字词的起始处 Ctrl + 向下键 将光标移动到下一个段落的起始处 Ctrl + 向上键 将光标移动到上一个段落的起始处 Ctrl + Alt + Tab 使用箭头键在所有打开的应用之间切换...Shift + C 在侦听模式下打开 Cortana 注意: Cortana 仅在某些国家/地区提供,并且某些 Cortana 功能可能无法随时随地使用。...温馨提示: 借助触摸键盘,按下 Ctrl 键即可看到一些快捷方式。 以下是 Windows 10 中内置的某些 Microsoft 应用中常见的键盘快捷方式。...在集锦中) 向上、向下、向左或向右滚动 左箭头或右箭头键(位于单个项目或幻灯片放映上) 显示下一个或上一个项目 箭头键(位于缩放的照片上) 在照片内移动 Ctrl + 加号或减号(+ 或 -) 放大或缩小...(在“相册”视图中) 删除相册 Ctrl + D 将选定项添加到相册 Ctrl + U 从相册中删除选定项 “写字板”键盘快捷方式 按此键 执行此操作 F3 在“查找”对话框中搜索文本的下一个实例

    17.6K31

    前端如何提高用户体验:增强可点击区域的大小

    为了更加清楚,请参见下图,左图可点击区别(圈红部分)明显比右图的小很多,所以右图的实现用户体验会更好。 ? 对于本文,会介绍一些事例,并通过事例演示如何增加可点击区别,提高用户体验。...WCAG准则 WCAG全称Web Content Accessibility Guidelines 网页内容无障碍浏览准则,简单的说就是为了方便残障人士(包括低视患者,盲人,聋人,学习障碍,行动不便,认知障碍...在下面的图中,我模拟了两个按钮的不同情况。在左侧,按钮更小,更远,用户需要更多的时间与它互动。在右侧,按钮大小更大,更接近于它的同级输入元素,这将使交互更容易、更快。 ?...我把鼠标悬停在按钮上,光标仍然是一个指针,这很好。不过,我也可以选择文本和悬停时,有一个文本光标!如果使用了正确的元素,就不会发生这种情况。 ?...章节标题 在某些情况下,需要在章节标题的远端添加“查看更多”按钮或箭头。 在下面的示例中,我将箭头放置在假圆中,以便可以正确地使箭头居中。

    4.8K20

    随机森林

    决策树通过计算每一次分裂的最佳学习增益来决定如何选择下一步将要分裂的属性,也就是特征选取的顺序。...然后得出最优的预测结果,所以他的预测结果总是优于或者等于单个模型的预测结果的。上图中的个体学习通常为决策树或者神将网络之类的。...选择最优特征,这里是无放回的选择!还有一点就是随机森林中不像决策树中那样每次选择一个最大特征最为划分下一个子节点的走向。...优缺点: 优点: 它能够处理很高维度(feature很多)的数据,并且不用做特征选择; 由于随机选择样本导致的每次学习决策树使用不同训练集,所以可以一定程度上避免过拟合; 缺点: 随机森林已经被证明在某些噪音较大的分类或回归问题上会过拟合...; 对于有不同级别的属性的数据,级别划分较多的属性会对随机森林产生更大的影响,所以随机森林在这种数据上产出的属性权值是不可信的

    88270

    React源码分析4-深度理解diff算法

    简单来说就是如何通过最小代价将旧的 fiber 树转换为新的 fiber 树。经典的 diff 算法 中,将一棵树转为另一棵树的最低时间复杂度为 O(n^3),其中 n 为树种节点的个数。...tree diff根据策略一,react 会对 fiber 树进行分层比较,只比较同级元素。这里的同级指的是同一个父节点下的子节点(往上的祖先节点也都是同一个),而不是树的深度相同。...如上图所示,react 的 tree diff 是采用深度优先遍历,所以要比较的元素向上的祖先元素都会一致,即图中会对相同颜色的方框内圈出的元素进行比较,例如左边树的 A 节点下的子节点 C、D 会与右边树...如下图左边的树想要转变为右边的树: 图片实际经过的变换如下:将 root 节点下 A 子节点移动至 B 子节点之后在 root 节点下新增 E 子节点将 root 节点下 C 子节点删除图片结合源码看...然后继续执行遍历,对下一个 oldFiber 和下一个 newIdx 下标的 newFiber 继续 diff如果 diff 后 oldFiber 和 newIdx 的 key 或 type 不一致,那么说明不可复用

    47530

    Web 自动化实战经验硬核总结

    a[title] 匹配属性有title的a标签 属性选择器—匹配单词边界 a[title~=“hello”] 匹配title包含hello的a标签 后代选择器(空格表示),可选取当前层级下的任意层级元素...(+),表示只能选择同级的下一个元素 例如:#ab+.ab 含义:匹配id为ab的同级下一元素且该元素的class为ab才能匹配到 后续兄弟选择器(~表示),选取指定元素后的所有同级指定元素 例如:.ab...~li 含义:匹配class为ab的标签后的所有同级li标签 css 伪类用法 表达式 描述 nth-child(n) 匹配第 n 个子元素 nth-last-child(n) 匹配倒数第n个子元素 nth-of-type...XPATH://input[@class="s_ipt"] CSS: input.s_ipt 弟弟元素:after-sibling 继兄弟 这对于表单元素非常有用,即页面中位于同一父节点内的下一个相邻元素...input[@class="s_ipt"]/after-sibling::a CSS:input[class="s_ipt"]+a 哥哥元素:berfore-sibling 前兄弟 页面中位于同一父节点内的上一个相邻元素

    94920

    React源码分析4-深度理解diff算法

    简单来说就是如何通过最小代价将旧的 fiber 树转换为新的 fiber 树。经典的 diff 算法 中,将一棵树转为另一棵树的最低时间复杂度为 O(n^3),其中 n 为树种节点的个数。...tree diff根据策略一,react 会对 fiber 树进行分层比较,只比较同级元素。这里的同级指的是同一个父节点下的子节点(往上的祖先节点也都是同一个),而不是树的深度相同。...如上图所示,react 的 tree diff 是采用深度优先遍历,所以要比较的元素向上的祖先元素都会一致,即图中会对相同颜色的方框内圈出的元素进行比较,例如左边树的 A 节点下的子节点 C、D 会与右边树...如下图左边的树想要转变为右边的树: 图片实际经过的变换如下:将 root 节点下 A 子节点移动至 B 子节点之后在 root 节点下新增 E 子节点将 root 节点下 C 子节点删除图片结合源码看...然后继续执行遍历,对下一个 oldFiber 和下一个 newIdx 下标的 newFiber 继续 diff如果 diff 后 oldFiber 和 newIdx 的 key 或 type 不一致,那么说明不可复用

    33620

    React源码分析4-深度理解diff算法_2023-02-20

    简单来说就是如何通过最小代价将旧的 fiber 树转换为新的 fiber 树。 经典的 diff 算法 中,将一棵树转为另一棵树的最低时间复杂度为 O(n^3),其中 n 为树种节点的个数。...tree diff 根据策略一,react 会对 fiber 树进行分层比较,只比较同级元素。这里的同级指的是同一个父节点下的子节点(往上的祖先节点也都是同一个),而不是树的深度相同。...如上图所示,react 的 tree diff 是采用深度优先遍历,所以要比较的元素向上的祖先元素都会一致,即图中会对相同颜色的方框内圈出的元素进行比较,例如左边树的 A 节点下的子节点 C、D 会与右边树...如下图左边的树想要转变为右边的树: 图片 实际经过的变换如下: 将 root 节点下 A 子节点移动至 B 子节点之后 在 root 节点下新增 E 子节点 将 root 节点下 C 子节点删除 图片...然后继续执行遍历,对下一个 oldFiber 和下一个 newIdx 下标的 newFiber 继续 diff 如果 diff 后 oldFiber 和 newIdx 的 key 或 type 不一致,

    74330

    React源码分析4-深度理解diff算法

    简单来说就是如何通过最小代价将旧的 fiber 树转换为新的 fiber 树。经典的 diff 算法 中,将一棵树转为另一棵树的最低时间复杂度为 O(n^3),其中 n 为树种节点的个数。...tree diff根据策略一,react 会对 fiber 树进行分层比较,只比较同级元素。这里的同级指的是同一个父节点下的子节点(往上的祖先节点也都是同一个),而不是树的深度相同。...如上图所示,react 的 tree diff 是采用深度优先遍历,所以要比较的元素向上的祖先元素都会一致,即图中会对相同颜色的方框内圈出的元素进行比较,例如左边树的 A 节点下的子节点 C、D 会与右边树...如下图左边的树想要转变为右边的树: 图片实际经过的变换如下:将 root 节点下 A 子节点移动至 B 子节点之后在 root 节点下新增 E 子节点将 root 节点下 C 子节点删除图片结合源码看...然后继续执行遍历,对下一个 oldFiber 和下一个 newIdx 下标的 newFiber 继续 diff如果 diff 后 oldFiber 和 newIdx 的 key 或 type 不一致,那么说明不可复用

    43820

    React源码分析4-深度理解diff算法5

    简单来说就是如何通过最小代价将旧的 fiber 树转换为新的 fiber 树。经典的 diff 算法 中,将一棵树转为另一棵树的最低时间复杂度为 O(n^3),其中 n 为树种节点的个数。...tree diff根据策略一,react 会对 fiber 树进行分层比较,只比较同级元素。这里的同级指的是同一个父节点下的子节点(往上的祖先节点也都是同一个),而不是树的深度相同。...如上图所示,react 的 tree diff 是采用深度优先遍历,所以要比较的元素向上的祖先元素都会一致,即图中会对相同颜色的方框内圈出的元素进行比较,例如左边树的 A 节点下的子节点 C、D 会与右边树...如下图左边的树想要转变为右边的树: 图片实际经过的变换如下:将 root 节点下 A 子节点移动至 B 子节点之后在 root 节点下新增 E 子节点将 root 节点下 C 子节点删除图片结合源码看...然后继续执行遍历,对下一个 oldFiber 和下一个 newIdx 下标的 newFiber 继续 diff如果 diff 后 oldFiber 和 newIdx 的 key 或 type 不一致,那么说明不可复用

    37720

    React源码之深度理解diff算法

    简单来说就是如何通过最小代价将旧的 fiber 树转换为新的 fiber 树。经典的 diff 算法 中,将一棵树转为另一棵树的最低时间复杂度为 O(n^3),其中 n 为树种节点的个数。...tree diff根据策略一,react 会对 fiber 树进行分层比较,只比较同级元素。这里的同级指的是同一个父节点下的子节点(往上的祖先节点也都是同一个),而不是树的深度相同。...如上图所示,react 的 tree diff 是采用深度优先遍历,所以要比较的元素向上的祖先元素都会一致,即图中会对相同颜色的方框内圈出的元素进行比较,例如左边树的 A 节点下的子节点 C、D 会与右边树...如下图左边的树想要转变为右边的树: 图片实际经过的变换如下:将 root 节点下 A 子节点移动至 B 子节点之后在 root 节点下新增 E 子节点将 root 节点下 C 子节点删除图片结合源码看...然后继续执行遍历,对下一个 oldFiber 和下一个 newIdx 下标的 newFiber 继续 diff如果 diff 后 oldFiber 和 newIdx 的 key 或 type 不一致,那么说明不可复用

    41230
    领券