今天在看布局文件时,发现有一个提示,说我的EditText的触摸尺寸太小了,检测到的高度是35dp,建议设置为48dp或更高。
原文链接:https://support.google.com/accessibility/android/answer/7101858
原文内容如下:
屏幕上可供用户点击、触摸或以其他方式互动的所有元素应具有适中的尺寸,确保可靠的互动。建议确保这些元素的宽度和高度不低于 48dp,如Material Design 无障碍功能指南中所述。
在布局中实现可点击或可触摸的元素时,建议所使用的尺寸不小于建议的触摸目标尺寸。
如果这些控件的大小可动态调整,或可根据内容的尺寸调整大小,则不妨考虑使用android:minWidth和android:minHeight来设置尺寸下限。
要在扩展 View 的可触摸区域的同时保留其原始尺寸,则可考虑使用TouchDelegate,以允许父布局代表子 View 处理触摸事件。
注意:只有在 Android 10 及更高版本上运行时,无障碍功能扫描仪才能检测到并考虑使用 TouchDelegate。在早期的 Android 版本中,即使您使用该 API 将触摸目标放大至适当的尺寸,触摸目标也可能会以结果尺寸显示。
触摸目标包括响应用户输入的区域。触摸目标可超出元素的视觉边界:一个元素(如图标)可能显示为 24x24dp,但其周围的内边距也是完整 48x48dp 触摸目标的一部分。
建议将触摸目标设置为 48x48dp 或更大尺寸,并在四周设置 8dp 或更大的分隔空间,以确保平衡信息密度和易用性。无论屏幕尺寸是多少,触摸目标尺寸至少为 48x48dp 才能确保实际尺寸达到约 9 毫米。建议的触摸目标尺寸为 7 到 10 毫米。
要查看示例,请参阅Material Design 无障碍功能指南。
要手动验证应用的界面是否包含小尺寸触摸目标,请执行以下操作:
打开应用。
找出界面中所有可点击、可触摸或可互动的元素。
确保每个元素的尺寸为 48x48dp,或每条边的长度约为 9 毫米。
Android 的自动化测试工具能够检测到小尺寸触摸目标。您也可以考虑使用Android 版无障碍功能扫描仪对设备上的应用进行人工测试。要实现自动化测试,请在Espresso和Robolectric中开启无障碍检查功能。