可访问性旨在使每个人都可以使用应用程序或网站,包括视力,听觉,走动或认知障碍等残疾人。
Google Lighthouse 可访问性检查器可能会给出错误错误
Google Lighthouse 辅助功能检查器似乎对具有复杂 dom 结构的 Web 应用程序存在问题。我在开发 Web 应用程序时使用 Esri Experience Builder Developer,并且...
配置 Intune 以启用 Android 辅助功能应用程序
我们有一个 Android 辅助功能服务应用程序,可以通过 Microsoft Intune 等进行部署。 为了让无障碍服务应用程序能够完成其工作,需要在 Android 中启用它
所以在这个演示中,当天的单元格是 focusbale (https://fullcalendar.io/demos) 但在这个例子中(https://fullcalendar.io/docs/month-view-demo)它不是,不确定是因为...
我想知道如果仅将日期输入限制为选择器是否会出现任何可访问性问题。 我想限制用户仅使用日期选择器设置日期,并防止...
当使用ensureSemantics构建默认树时,Flutter TextSpan有不正确的<href>
我有一个 Flutter 应用程序,它通过调用 SemanticsBinding.instance.ensureSemantics(); 构建语义树;启动时。 完成此操作后,带有 TapGestureRecognizers 的 TextSpans 将在
对于 Android 14 上 filterTouchesWhenObscured 标志为 true 的应用,不会报告辅助功能服务信息
我的应用程序依赖于辅助功能事件(例如,AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED 或 AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED)以及 AccessibiltyNodeInfo 中的信息
如何增大和减小 Angular 应用程序的所有 html 页面中的字体大小
我正在创建一个 Angular 的 Web 应用程序,我需要添加浮动菜单,该菜单允许为有视力问题的人增加和减小字体大小。 有人可以帮我怎么做吗? T...
如何组合 Text 和 TextField 以实现语音支持,但保留 textField 特征
我有一个自定义 TextField 结构,其中我使用 .accessibilityElement(children: .combine) 来让 Siri 读出 Text + TextField 值,但“她”删除了 textField
UITextField 键盘无法通过语音辅助功能识别,但无需它即可工作
我是辅助功能领域的新手,对 iOS 的语音功能有疑问。 我有一个非常简单的 UIViewController ,其中有一个 UITextField (参见屏幕截图)。 问题是
我们可以使用 aria 更改地标元素或任何 html5 元素的原生语义吗
我们可以使用 aria 更改地标元素或 html5 的任何元素的本机语义吗?这样做在语义上是否正确且符合要求? 假设我想使用对话框元素作为
我在 React 测试库中有这个简单的测试。我正在使用 RTL 版本 12 和“@testing-library/user-event”版本“^13.5.0”。使用 userEvent.tab() 移动焦点效果很好,但是
我一直在开发一个辅助服务来访问应用程序的元素数据,例如文本、描述、资源 ID 等,使用以下辅助功能配置: 我一直在开发辅助功能服务,以使用以下辅助功能配置来访问应用程序的元素数据,例如文本、描述、资源 ID 等: <accessibility-service android:accessibilityEventTypes="typeViewClicked|typeViewLongClicked|typeViewScrolled" android:accessibilityFeedbackType="feedbackGeneric" android:accessibilityFlags="flagIncludeNotImportantViews|flagRetrieveInteractiveWindows|flagReportViewIds" android:canRetrieveWindowContent="true" xmlns:android="http://schemas.android.com/apk/res/android"/> 通过此设置,我可以在与应用程序中的元素交互时捕获事件。但是,当弹出窗口打开并且我尝试与弹出窗口中的按钮(例如搜索按钮、星号消息、回复按钮)进行交互时, onAccessibilityEvent() 函数中不会触发任何事件。 (弹出窗口如所附屏幕截图所示)。 我还尝试通过将 android:accessibilityFlags 更改为来修改配置: android:accessibilityFlags="flagRequestTouchExplorationMode|flagIncludeNotImportantViews|flagRetrieveInteractiveWindows|flagReportViewIds" 但是,我仍然只收到屏幕的根元素。我知道此功能是可能的,因为像 TalkBack 这样的服务可以轻松处理此类交互。您能否指导我实现所需功能时可能缺少的内容? bottomSheet 代码: <?xml version="1.0" encoding="utf-8"?> <androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content"> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="2dp"> <!--image view for displaying course image--> <ImageView android:id="@+id/idIVCourse" android:layout_width="100dp" android:layout_height="100dp" android:layout_margin="10dp" /> <!--text view for displaying course name--> <TextView android:id="@+id/idTVCourseName" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:layout_toEndOf="@id/idIVCourse" android:layout_toRightOf="@id/idIVCourse" android:text="DSA Self Paced Course" android:textColor="@color/black" android:textSize="18sp" android:textStyle="bold" /> <!--text view for displaying course tracks--> <TextView android:id="@+id/idTVCourseTracks" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/idTVCourseName" android:layout_marginTop="10dp" android:layout_toEndOf="@id/idIVCourse" android:layout_toRightOf="@id/idIVCourse" android:text="Course Tracks : 30" android:textColor="@color/black" android:textSize="15sp" /> <!--text view for displaying course duration--> <TextView android:id="@+id/idTVCourseDuration" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/idTVCourseTracks" android:layout_marginTop="10dp" android:layout_toEndOf="@id/idIVCourse" android:layout_toRightOf="@id/idIVCourse" android:text="Course Duration : 4 Months" android:textColor="@color/black" android:textSize="15sp" /> <!--button for dismissing our dialog--> <Button android:id="@+id/idBtnDismiss" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/idIVCourse" android:layout_margin="10dp" android:text="Dismiss dialog" android:textAllCaps="false" /> </RelativeLayout> </androidx.cardview.widget.CardView> 从活动中打开底页的代码: val openBottomSheetButton: Button = findViewById(R.id.open_bottom_sheet_button) openBottomSheetButton.setOnClickListener { val dialog = BottomSheetDialog(this) val view = layoutInflater.inflate(R.layout.bottomsheet, null) val btnClose = view.findViewById<Button>(R.id.idBtnDismiss) btnClose.setOnClickListener { dialog.dismiss() } dialog.setCancelable(false) dialog.setContentView(view) dialog.show() } 我花了一些时间对此进行了更多研究,说实话我仍然有点困惑,但我已经成功创建了一个小型演示。请理解,我仍然不知道我们为什么要这样做的实际意义。我希望至少进行一次讨论,这样我们才能找到答案。这里的评论根本不够。 我目前与此问题相关的问题: 这对残疾人有何帮助? 这是否与辅助技术(例如对讲、语音访问等)结合使用? 但我不想继续提问,而是想根据我所掌握的信息尝试一下。现在这就是我所做的: 使用尽可能多的代码编写一个打开底部工作表的自定义视图应用程序 编写跟踪用户移动的自定义辅助功能服务,如果显示底部工作表,看看是否可以找到关闭按钮并单击它 accessibility_service_config.xml <accessibility-service xmlns:android="http://schemas.android.com/apk/res/android" android:description="@string/accessibility_service_description" android:accessibilityEventTypes="typeAllMask" android:accessibilityFlags="flagIncludeNotImportantViews|flagRetrieveInteractiveWindows|flagReportViewIds" android:accessibilityFeedbackType="feedbackGeneric" android:notificationTimeout="100" android:canRetrieveWindowContent="true" /> SampleAccessibilityService.kt class SampleAccessibilityService: AccessibilityService() { override fun onInterrupt() { Log("onInterrupt") } override fun onAccessibilityEvent(event: AccessibilityEvent?) { Log("---------------------------------------------------------") Log("onAccessibilityEvent CLASS ${event?.className ?: " "} -- ${BottomSheetDialog::class.java.name}") Log("onAccessibilityEvent EVENT ${event?.eventType ?: " "}") Log("onAccessibilityEvent TEXT ${event?.text ?: " "}") if (event?.eventType == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED && event.className == BottomSheetDialog::class.java.name) { rootInActiveWindow.findAccessibilityNodeInfosByText("Dismiss dialog").forEach { node -> Log(" onAccessibilityEvent CLICKING A NODE") node.performAction(AccessibilityNodeInfo.ACTION_CLICK) } } } override fun onServiceConnected() { Log("onServiceConnected") serviceInfo.apply { // I have found you have to do this in the config and onServiceConnected. Mine are actually mismatched but the service worked fine. ¯\_(ツ)_/¯ eventTypes = AccessibilityEvent.TYPE_VIEW_CLICKED or AccessibilityEvent.TYPE_VIEW_FOCUSED notificationTimeout = 100 } } } object Log { operator fun invoke(text: String) { android.util.Log.d("SAMPLEALLYSERVICE","SAMPLEALLYSERVICE: $text") } } 当我从“设置”菜单启用此服务时: Settings -> Accessibility -> Sample Accessibility Service -> Use Sample Accessibility Service 打开我的测试应用程序 打开底页 我可以看到它立即关闭了。 我真的希望这能为您带来一些启发 - 您必须在辅助功能服务中使用事件触发器才能知道某些方面发生了变化,例如 TYPE_WINDOW_STATE_CHANGED - 然后我通过文本而不是 ID 查找节点,因为 ID 是将会变得不那么流行(Jetpack Compose),我可以通过可访问性节点发送交互命令: node.performAction(AccessibilityNodeInfo.ACTION_CLICK)
如何修复 Google Play 控制台有关缺少内容标签的警告
我有一个针对 Android 的 Flutter 应用程序。我已经用语义小部件包装了大多数小部件,以向屏幕阅读器提供信息(仅不包括文本小部件)。 语义( 按钮:真, ...
如何在 Safari/Firefox 阅读器模式下将表格宽度设置为 100%?
在 Safari 和 Firefox 等浏览器上,阅读器视图模式下表格宽度不会 100% 显示。但如果我添加 ,HTML 验证器会将其标记为过时元素。添加... 在 Safari 和 Firefox 等浏览器上,table width 在 Reader View Mode 中不会 100% 显示。但如果我添加 <table width="100%">,HTML 验证器会将其标记为过时元素。添加 styles 不会起到 Reader View Mode 条带 CSS 的作用。尝试使用 inline styles 代替 table,但这也被 Reader View Mode 中删除了。 如何解决这个问题? 我的代码table: <table width="100%"> <caption>The table below shows nutritional values per serving without the additional fillings.</caption> <tbody> <tr> <td>Calories</td><td>227kcal</td> </tr> <tr> <td>Carbs</td><td>0g</td> </tr> <tr> <td>Protein</td><td>20g</td> </tr> <tr> <td>Fat</td><td>22g</td> </tr> </tbody> </table> 刚刚在 Google Chrome 中检查过,使用 CSS 类就可以解决问题,例如: .tbl_reader { width: 100%; } 当然,不要忘记将 class="tbl_reader" 添加到 table 标签。
如何在不使用 <table width="100%"> 的情况下为 Safari/Firefox 阅读器模式制作 100% 的表格?
在 Safari 和 Firefox 等浏览器上,表格宽度在阅读器视图/模式下不会 100% 显示。但如果我添加 HTML 验证器,则会将其标记为过时元素。添加样式在阅读器视图/模式下不起作用...
UIKit 包含 UIAccessibility 函数,用于确定是否打开 Voice Over、隐藏式字幕、引导访问和反转颜色。然而,我还没有找到一种方法来检测...
当由于可访问性原因而在浏览器设置中更改字体大小而导致溢出时,请使第一级菜单垂直
我正在使用 Flexbox 创建一个简单的一级菜单(这里我有一个最小的可重现示例)。当七个链接没有足够的水平空间时,我用一个简单的方法使菜单垂直......
我在我的项目中使用日期范围选择器。它是在第三方库 daterangepicker.js 的帮助下开发的,但是,它不支持键盘辅助功能。这个库的作者还没有准备好......
何时在ReactNative中使用accessibilityRole='link'?
我有一个带有抽屉导航的应用程序,它使用按钮导航到不同的屏幕。 在可访问性方面,我应该使用accessibilityRole='button'还是accessibilityRole='link'作为