accessibility 相关问题

可访问性旨在使每个人都可以使用应用程序或网站,包括视力,听觉,走动或认知障碍等残疾人。

防止某些元素获得焦点

所以我有以下功能。它的作用是监听所有元素的焦点事件。如果该元素位于 $mobileMenu 或 $menuItems 中,则它允许它,否则它将删除焦点: ...

回答 5 投票 0

禁用 CMD 上的文件视图扩展

当光标位于文件中时单击 ⌘ 时,intellij 会在文件顶部的框中显示该文件的大可滚动放大视图: 我认为这是我意外的辅助功能...

回答 1 投票 0

包含选项卡以外的元素的 Aria tablist 角色

我有关于咏叹调角色列表的问题。选项卡元素是选项卡列表中唯一允许的元素。这是一个 DOM 示例。 我有一个关于咏叹调角色的问题tablist。选项卡元素是 tablist 内唯一允许的元素。这是一个 DOM 示例。 <ul role="tablist"> <li> <a role="tab" href="#">My Tab</a> <button class="close">X</button> </li> </ul> 由于 <button> 是一个交互式元素,它将被添加到可访问性树中。规范中规定“允许的辅助功能子角色”是 tab。这也适用于隐含角色吗?如果选项卡角色移至 <li> 那么问题就变得毫无意义了? 你把矛头指向了 ARIA 的薄弱环节。 正在讨论解决 ARIA 中关闭选项卡等次要操作的问题 关于规范,您的陈述是正确的,但我会稍微改一下: tab 角色 tablist内唯一允许的子角色。 细微差别在于 ARIA 适用于角色,而不是 HTML 元素。您可以将任何 HTML 元素直接放置在选项卡列表下,只要它没有角色(或 role="none")。同样重要的是,规范中提到了child角色,而不是可访问性树中更深层次的角色。因此,沿着 DOM 向下,下一个角色不是 none 的元素一定是 tab 的元素。 <li> 具有隐式角色 listitem,因此不允许它作为具有角色 tablist 的元素的子元素。您可以删除它的角色<li role="none">,但不建议这样做,它的使用毫无意义。 具有角色 tab 的元素应该是交互式的,因此您不能简单地将其添加到 <li> 元素上而不处理其上的所有交互。 任何交互元素都不能有交互子元素。这给模式带来了问题。 也许 Github 上的讨论会启发您找到一些解决方法。

回答 1 投票 0

让屏幕阅读器 (NDVA) 在登录后宣布菜单项

我根据此示例创建了一个可访问的优先级菜单:https://www.codementor.io/@marys/flexbox-priority-navigation-1bussno6uj。 我还为三类用户添加了登录功能...

回答 1 投票 0

如何从AccessibilityNodeInfo中的所有子节点获取文本

我正在尝试从 AccessiblityNodeInfo 的所有子节点读取文本。 我尝试获取 AccessiblityNodeInfo.getParent() 和 AccessibilityNodeInfo.getChildCount() for(int i=0; i<

回答 2 投票 0

Highcharts可访问输入和点击事件功能(需要可访问事件数据)

作为 Highcharts 可访问性输入和单击事件功能的后续功能 绘图选项:{ 系列: { 观点: { 事件:{ 单击:函数(e){ console.log('点

回答 1 投票 0

在页脚中使用或不使用页脚标题

在页脚中添加标题“页脚”对于我的网站的可访问性是否有必要或有帮助?我知道页脚是一个地标,因此屏幕阅读器的用户可以找到标题...

回答 1 投票 0

Highcharts无障碍输入和点击事件功能

我需要添加 Enter 或空格键事件以实现辅助功能。当您单击鼠标时它可以工作,但不能使用 Enter 或空格键 绘图选项:{ 系列: { 允许点选择:

回答 1 投票 0

一页上只能有一个H1标题

辅助功能团队告诉我,单个页面上应该只有一个 H1。 互联网上的参考:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Heading_Elements#

回答 5 投票 0

离子按钮如何向屏幕阅读器宣布?

目前,在使用 Cypress 编写端到端测试时,使用测试库,我注意到应用程序中通过 ionic 的 ion-button 呈现的一些按钮在按钮角色下找不到。

回答 1 投票 0

键盘可访问的 React 组件可在悬停和焦点时安装?

在 React 应用程序中,我有一个 组件网格。每个 渲染多个 组件。 由于我无法控制的限制,Button 的效率很低 在 React 应用程序中,我有一个由 <Card /> 组件组成的网格。每个 <Card /> 渲染多个 <Button /> 组件。 由于我无法控制的限制,Button是一个低效的组件。渲染成本很高,而且我们需要渲染数百个<Card />组件,因此它成为性能问题。 考虑到这一点,我只想在用户主动与 <Button /> 交互时安装/渲染 <Card />: 当用户将鼠标悬停在 <Card /> 上时,安装 <Button /> 当用户通过键盘导航到 <Card /> 时,安装并聚焦 <Button />。 允许键盘用户在 <Card /> 组件之间完全向前/向后循环 悬停部分相当简单,我的实现如下所示。 我的键盘部分遇到问题。由于 <Button /> 尚未安装,用户键盘如何导航到它? 我尝试过的CodeSandbox链接 这大部分都有效,除了两个重要的方式: 当 <Button /> 被插入时,第一个 <Card/> 应该立即获得焦点(不需要按第二次 Tab 键) 反向键盘导航(即shift+tab)不允许任何<Button>获得焦点。它应该聚焦于“最后一个”按钮,并允许用户导航所有按钮,然后转到上一个 <Card> 问题:我必须对下面的代码进行哪些修改才能支持以上两点? import { useState, Fragment, useEffect, useRef, MutableRefObject } from "react"; import Button from "./Button"; export default function Card() { const [isHovered, setIsHovered] = useState<boolean>(false); const [showButtons, setShowButtons] = useState<boolean>(false); const containerRef: MutableRefObject<HTMLDivElement | null> = useRef(null); useEffect(() => { setShowButtons(isHovered); }, [isHovered]); return ( <div onMouseOver={() => setIsHovered(true)} onMouseLeave={() => setIsHovered(false)} onFocus={(event) => { event.persist(); setIsHovered(true); }} onBlur={(event) => { event.persist(); window.requestAnimationFrame(() => { if (containerRef.current) { setIsHovered( containerRef.current.contains(document.activeElement) === true ); } }); }} tabIndex={0} > <div ref={containerRef}> <h2>Card</h2> {showButtons && ( <Fragment> <Button>Expensive Button One</Button> <Button>Expensive Button Two</Button> </Fragment> )} </div> </div> ); } 您可以使用简单的 CSS(opacity 属性)和焦点状态更改来达到所需的结果。 请注意,使非交互式卡片容器组件与 tabIndex={0} 交互是一种反模式。 //styles.css .invisible-button { opacity:0; } //Button.tsx import React, { useState, FC } from "react"; export const Button: FC<{ children: React.ReactNode }> = ({ children, }) => { const [hasBeenFocused, setHasBeenFocused] = useState(false); const handleFocus = () => setHasBeenFocused(true); const handleBlur = () => setHasBeenFocused(false); return ( <button className={hasBeenFocused ? "" : "invisible-button"} onFocus={handleFocus} onBlur={handleBlur} onMouseEnter={handleFocus} onMouseLeave={handleBlur} > {children} </button> ); }; export default Button; 看看完整的沙箱: https://codesandbox.io/p/sandbox/intelligent-matsumoto-frc9kk?file=%2Fsrc%2FApp.js%3A14%2C1 如果您希望仅让按钮获得焦点,则无需使卡片组件与 tabIndex 属性交互。 我希望我的解决方案有帮助:-)

回答 1 投票 0

如何以编程方式设置 Compose Accessibility Talkback 的焦点

我想在第二个屏幕返回后按单击聚焦原始视图。例如,当我单击法律按钮时,应用程序将导航到第二主屏幕。当第二个主屏幕...

回答 1 投票 0

如何使用 VoiceOver 启动 SwiftUI 列表 onDelete 操作

我的 SwiftUI 列表处于编辑模式(editMode == .active),并且在某些列表行上带有 onDelete 修饰符。我想让 onDelete 操作具有可访问性(VoiceOver)。我该怎么办...

回答 1 投票 0

如何对屏幕阅读器隐藏元素及其所有子元素?

如何对屏幕阅读器隐藏元素及其所有子元素,并阻止使用键盘访问? 我正在处理可访问性,并且在我维护的页面上有广告...

回答 1 投票 0

macOS 上的 VoiceOver + Safari 无法正确宣布 aria 扩展状态

在我们的 Angular 应用程序中,我们有一个按钮负责打开菜单。其上有一个指令,其中包含切换菜单的逻辑。在我们的例子中,菜单只是一个菜单...

回答 1 投票 0

切换覆盖家长辅助功能,保留儿童辅助功能首选项

我们假设一个iOS应用程序通过overlay修饰符或在ZStack中呈现一些内容。这样,父内容的两个元素都可以使用辅助功能焦点(例如,当用户启用旁白时)...

回答 1 投票 0

如何解决 PageSpeed Insights 诊断可访问性部分出现问号的性能问题

使用 PageSpeed Insights 测试网站性能时,辅助功能分数不会显示,并显示为问号,并显示“背景和前景色有足够的...

回答 1 投票 0

什么算作可访问性的悬停状态?

如果文本是明确的指令,并且鼠标悬停时光标变为手形,这是否符合可访问性标准?或者链接本身是否必须有实际的视觉变化?

回答 3 投票 0

WCAG 1.4.4。调整文本大小 - 省略大小并提供可访问的工具提示是否失败?

1.4.4 对于椭圆化我不清楚。我的页面上的文本在缩放时会变成椭圆形,这被认为是 1.4.4 的失败。 我确实发现这个确实有一个椭圆形的 e...

回答 1 投票 0

NVDA 无法使用 Vuetify 读取 Firefox 中的按钮

我遇到了一位客户在我的应用程序中使用 NVDA 作为屏幕阅读器的严重问题。 我用我使用 NVDA + 我的网站所做的测试作为序言: Chrome:我的网站运行完美,但是......

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.