AccessibleCaret

AccessibleCaret 是一对位于选区高亮两端的雨滴形状手柄,或者是在文本区域中闪烁的光标处的一个手柄。它帮助用户在支持触摸事件的平台上更改选区高亮的范围或闪烁光标的位置。

元 Bug

Bug 1124074 跟踪所有未解决的问题。

Gecko 实现细节

偏好设置

  • layout.accessiblecaret.enabled_on_touch (从 Firefox 51 版本开始,在支持触摸事件的 Firefox 中启用)。

  • layout.accessiblecaret.enabled (默认为关闭,但可以将其打开以强制启用 AccessibleCaret)。

  • layout.accessiblecaret.hide_carets_for_mouse_input (默认为开启。开启此设置可以在桌面浏览器上使用鼠标事件调试 AccessibleCaret)。

AccessibleCaretEventHub 状态转换图

此图描述了 AccessibleCaretEventHub 中状态机的状态转换,该状态机处理外部事件和回调。

请注意,此图省略了一些不会导致状态转换的回调,例如 NotifySelectionChangedReflow

此表是实际事件和回调到图边缘描述的动作的映射

实际事件或回调

动作

eMouseDowneTouchStart

按下

eMouseMoveeTouchMove

移动

eMouseUpeTouchEndeTouchCancel

释放

eMouseLongTap

长按

AsyncPanZoomStarted()

滚动开始

AsyncPanZoomStopped()

滚动结束

NotifyBlur()

失去焦点

../_images/AccessibleCaretEventHubStates.png

调试技巧

  • 从命令行转储 AccessibleCaret 日志:运行 MOZ_LOG=AccessibleCaret:5 ./mach run

  • 使用偏好设置转储 AccessibleCaret 日志:打开 about:config 并添加一个偏好设置 logging.AccessibleCaret,其值为 debugverbose(大小写敏感)。

  • AC_LOG() 用于添加新的日志。

开发者

当前维护者

荣誉开发者