Angular CDK 无障碍性 API 参考

import {A11yModule} from '@angular/cdk/a11y';

检测用户输入模式的服务。

当用户使用屏幕阅读器进行导航(例如借助 VoiceOver 进行线性导航、借助 NVDA 使用对象导航/浏览模式、借助 JAWS 使用虚拟 PC 光标模式)时,此服务不会改变输入模式。这部分是由于技术限制(即在这些模式下键盘事件不会按预期触发),但也可以说是正确的行为。使用屏幕阅读器导航类似于视觉扫描页面,不应被解释为实际的用户输入交互。

当用户不是在导航而是与屏幕阅读器交互时,此服务会尝试将输入模式改为键盘,但一般来说此服务的行为在很大程度上是未定义的。

属性
名称 描述

modalityChanged: Observable<InputModality>

当输入模式改变时发出。

modalityDetected: Observable<InputModality>

每当检测到输入模式时发出。

mostRecentModality: InputModality

最近检测到的输入模式。

本服务用于确定浏览器当前是否处于高对比度模式环境中。

Microsoft Windows 支持一种称为“高对比度模式”的辅助功能。此模式更改所有应用程序(包括 Web 应用程序)的外观,以显著提高对比度。

目前,IE、Edge 和 Firefox 支持此模式。Chrome 浏览器不支持 Windows 高对比度模式。此服务无法检测到由 Chrome 的“高对比度” 扩展程序添加的高对比度模式。

方法
getHighContrastMode

获取页面的当前高对比度模式。

返回值
HighContrastMode

该实用工具创建带有消息内容的视觉不可见元素。对于希望使用 aria-describedby 来进一步描述自己而不想添加其他视觉内容的元素很有用。

方法
describe

为宿主元素添加一个由 aria-describedby 引用的不可见的消息元素。如果已经注册了相同的消息,则它将复用已创建的消息元素。

参数

hostElement

Element

message

string

角色 ?

string

describe

为宿主元素添加一个由 aria-describedby 引用的现有消息元素。

参数

hostElement

Element

message

HTMLElement

removeDescription
参数

hostElement

Element

message

string | HTMLElement

角色 ?

string

本工厂允许轻松实例化可配置的焦点陷阱。

方法
create

在指定元素周围创建一个焦点捕获区域。

参数

element

HTMLElement

要在其周围捕获焦点的元素。

配置 ?

ConfigurableFocusTrapConfig

焦点陷阱配置。

返回值
ConfigurableFocusTrap

所创建的焦点陷阱实例。

已弃用
create
参数

element

HTMLElement

deferCaptureElements

boolean

返回值
ConfigurableFocusTrap

允许轻松实例化焦点陷阱的工厂。

Deprecated
方法
create

在指定元素周围创建一个焦点捕获区域。

参数

element

HTMLElement

要在其周围捕获焦点的元素。

deferCaptureElements

boolean = false

推迟创建由用户手动完成的焦点捕获元素。

返回值
FocusTrap

所创建的焦点陷阱实例。

用于检查元素交互性的实用程序,例如元素是否可聚焦或可制表。

方法
isDisabled

获取元素是否已禁用。

参数

element

HTMLElement

要检查的元素。

返回值
boolean

元素是否已禁用。

isFocusable

获取用户是否可以给某个元素设置焦点。

参数

element

HTMLElement

要检查的元素。

配置 ?

IsFocusableConfig

带有用于自定义此方法行为的选项的配置对象

返回值
boolean

元素是否可获得焦点。

isTabbable

获取是否可以通过 Tab 键访问元素。假定已经使用 isFocusable 检查过此元素。

参数

element

HTMLElement

要检查的元素。

返回值
boolean

元素是否可 tab。

isVisible

获取某元素可见是否出于交互目的。

这包括 display: nonevisibility: hidden 状态下的,但被 overflow: hidden 的父对象切掉或位于视口之外的除外。

参数

element

HTMLElement

返回值
boolean

元素是否可见。

方法
异步
announce

向屏幕阅读器发布一条消息。

参数

message

string

要通知到屏幕阅读器的消息。

返回值
Promise<void>

将消息添加到 DOM 时将解决的 Promise。

异步
announce

向屏幕阅读器发布一条消息。

参数

message

string

要通知到屏幕阅读器的消息。

礼貌 ?

AriaLivePoliteness

播报员元素的礼貌度。

返回值
Promise<void>

将消息添加到 DOM 时将解决的 Promise。

异步
announce

向屏幕阅读器发布一条消息。

参数

message

string

要通知到屏幕阅读器的消息。

持续时间 ?

number

清除播报员元素的时间(以毫秒为单位)。请注意,这是在将消息添加到 DOM 后生效的,这可能在调用 announce 之后的最多 100ms。

返回值
Promise<void>

将消息添加到 DOM 时将解决的 Promise。

异步
announce

向屏幕阅读器发布一条消息。

参数

message

string

要通知到屏幕阅读器的消息。

礼貌 ?

AriaLivePoliteness

播报员元素的礼貌度。

持续时间 ?

number

清除播报员元素的时间(以毫秒为单位)。请注意,这是在将消息添加到 DOM 后生效的,这可能在调用 announce 之后的最多 100ms。

返回值
Promise<void>

将消息添加到 DOM 时将解决的 Promise。

clear

从播报员元素中清除当前文本。可以用于防止屏幕阅读器在用户浏览页面地标时再次读出文本。

监视鼠标和键盘事件以确定焦点事件的原因。

方法
focusVia

通过指定的焦点来源对元素进行聚焦。

参数

element

HTMLElement

要获取焦点的元素。

origin

FocusOrigin

焦点来源。

选项 ?

FocusOptions

可用于配置焦点行为的选项。

focusVia

通过指定的焦点来源对元素进行聚焦。

参数

element

ElementRef<HTMLElement>

要获取焦点的元素。

origin

FocusOrigin

焦点来源。

选项 ?

FocusOptions

可用于配置焦点行为的选项。

monitor

监视元素的焦点,并应用适当的 CSS 类。

参数

element

HTMLElement

要监视的元素

检查子元素 ?

boolean

当子元素获得焦点时是否要计入这个焦点。

返回值
Observable<FocusOrigin>

会在元素的焦点状态更改时发出通知的可观察对象。当元素失焦时,将发出 null。

monitor

监视元素的焦点,并应用适当的 CSS 类。

参数

element

ElementRef<HTMLElement>

要监视的元素

检查子元素 ?

boolean

当子元素获得焦点时是否要计入这个焦点。

返回值
Observable<FocusOrigin>

会在元素的焦点状态更改时发出通知的可观察对象。当元素失焦时,将发出 null。

stopMonitoring
参数

element

HTMLElement | ElementRef<HTMLElement>

在 zone 内捕获焦点的指令。

选择器: [cdkTrapFocus]

Exported as: cdkTrapFocus
属性
名称 描述
@Input({ alias: 'cdkTrapFocusAutoCapture', transform: booleanAttribute })

autoCapture: boolean

指令是否应在初始化时自动将焦点移到捕获的 zone 中,并在销毁时将焦点返回给先前的 activeElement。

@Input({ alias: 'cdkTrapFocus', transform: booleanAttribute })

enabled: boolean

焦点陷阱是否处于活动状态。

focusTrap: FocusTrap

底层 FocusTrap 实例。

该指令与 aria-live 相似,但使用 LiveAnnouncer 来确保与更多浏览器和屏幕阅读器的兼容性。

选择器: [cdkAriaLive]

Exported as: cdkAriaLive
属性
名称 描述
@Input('cdkAriaLiveDuration')

duration: number

清除播报员元素之前要等待的毫秒数。

@Input('cdkAriaLive')

politeness: AriaLivePoliteness

朗读消息时要使用的 aria-live 礼貌度。

指令,用于确定如何让特定元素获得焦点(通过键盘,鼠标,触摸或以编程方式),并向该元素添加相应的类。

此指令有两种变体:

此指令有两种变体: 1)cdkMonitorElementFocus:如果元素的任何一个子元素有焦点,则不认为该元素拥有焦点。 2)cdkMonitorSubtreeFocus:如果元素或其任何子元素都有焦点,则认为该元素拥有焦点。

选择器: [cdkMonitorElementFocus] [cdkMonitorSubtreeFocus]

Exported as: cdkMonitorFocus
属性
名称 描述
@Output()

cdkFocusChange: EventEmitter<FocusOrigin>

focusOrigin: FocusOrigin

属性
名称 描述

activeItem: T | null

活动条目。

activeItemIndex: number | null

当前活动条目的索引。

change: Subject<number>

每当列表管理器的活动条目更改时发出通知的流。

tabOut: Subject<void>

只要按下 TAB 键,流就会发出通知,因此当焦点从列表移开时,组件可以做出反应。

方法
cancelTypeahead

取消当前的预先输入序列。

返回值
this

destroy

清理键盘管理器。

isTyping

获取用户当前是否正在使用预输入函数键入此管理员。

返回值
boolean

onKeydown

根据传入的键盘事件设置激活条目。

参数

event

KeyboardEvent

用于确定哪个元素应处于活动状态的键盘事件。

setActiveItem

将活动条目设置为指定索引处的条目,并将活动样式添加到新活动条目。也会从以前的活动条目中删除活动样式。

参数

index

number

要设置为活动条目的索引。

setActiveItem

将活动条目设置为指定的条目,并将活动样式添加到该条目。也从以前的活动条目中删除活动样式。

参数

item

T

要设置为活动的条目。

setFirstItemActive

将激活条目设置为列表中第一个可用的(enabled)条目。

setLastItemActive

将激活条目设置为列表中最后一个可用的(enabled)条目。

setNextItemActive

将激活条目设置为列表中的下一个可用的(enabled)条目。

setPreviousItemActive

将激活条目设置为列表中的上一个可用的(enabled)条目。

skipPredicate

设置谓词函数,该函数会确定列表按键管理器应跳过哪些条目。

参数

predicate

(item

确定是否应跳过指定条目的函数。

返回值
this

updateActiveItem

允许在没有任何其他效果的情况下设置激活状态。

参数

index

number

要设置为活动条目的索引。

updateActiveItem

允许设置活动条目,而没有任何其他影响。

参数

item

T

要设置为活动的条目。

withAllowedModifierKeys

用户按下方向键时,可以按住修饰键并防止其默认操作。默认为不允许任何修饰键。

参数

keys

ListKeyManagerModifierKey[]

返回值
this

withHomeAndEnd

配置按键管理器,以在按下 Home 或 End 键时分别激活第一项和最后一项。

参数

enabled

boolean = true

按下 Home 键或 End 键时是否激活第一项/最后一项。

返回值
this

withHorizontalOrientation

配置按键管理器以水平移动选择。传递 null 将禁用水平移动。

参数

direction

"ltr" | "rtl"

所选内容可以移动的方向。

返回值
this

withPageUpDown

将键盘管理器配置为在按下 Page-Up 或 Page-Down 键时分别在向上/向下方向激活每第 10 个、已配置的或第一个/最后一个元素。

参数

enabled

boolean = true

按 Page-Up 或 Page-Down 键是否激活第一个/最后一个条目。

delta

number = 10

按下 Home 键或 End 键时是否激活第一项/最后一项。

返回值
this

withTypeAhead

打开预输入模式,该模式允许用户通过键入来设置活动条目。

参数

debounceInterval

number = 200

在最后一次按键操作之后等待一小段时间,然后再设置活动条目。

返回值
this

withVerticalOrientation

配置按键管理器是否应该能够垂直移动选择。

参数

enabled

boolean = true

是否应启用垂直选择。

返回值
this

withWrap

配置回卷模式,当该模式确定在指定方向上没有更多条目时,活动条目是否将回卷列表的另一端。

参数

shouldWrap

boolean = true

到达末尾时列表是否应该回卷。

返回值
this

属性
名称 描述

activeItem: T | null

活动条目。

activeItemIndex: number | null

当前活动条目的索引。

change: Subject<number>

每当列表管理器的活动条目更改时发出通知的流。

tabOut: Subject<void>

只要按下 TAB 键,流就会发出通知,因此当焦点从列表移开时,组件可以做出反应。

方法
cancelTypeahead

取消当前的预先输入序列。

返回值
this

destroy

清理键盘管理器。

isTyping

获取用户当前是否正在使用预输入函数键入此管理员。

返回值
boolean

onKeydown

根据传入的键盘事件设置激活条目。

参数

event

KeyboardEvent

用于确定哪个元素应处于活动状态的键盘事件。

setActiveItem

将活动条目设置为指定索引处的条目,并让新的活动条目获得焦点。

参数

index

number

要设置为活动条目的索引。

setActiveItem

将活动条目设置为指定的条目并让它获得焦点。

参数

item

T

要设置为活动的条目。

setFirstItemActive

将激活条目设置为列表中第一个可用的(enabled)条目。

setFocusOrigin

设置焦点来源,该焦点来源将传递给所有后续调用 focus 的条目。

参数

origin

FocusOrigin

用来让条目获取焦点时的焦点来源。

返回值
this

setLastItemActive

将激活条目设置为列表中最后一个可用的(enabled)条目。

setNextItemActive

将激活条目设置为列表中的下一个可用的(enabled)条目。

setPreviousItemActive

将激活条目设置为列表中的上一个可用的(enabled)条目。

skipPredicate

设置谓词函数,该函数会确定列表按键管理器应跳过哪些条目。

参数

predicate

(item

确定是否应跳过指定条目的函数。

返回值
this

updateActiveItem

允许在没有任何其他效果的情况下设置激活状态。

参数

index

number

要设置为活动条目的索引。

updateActiveItem

允许设置活动条目,而没有任何其他影响。

参数

item

T

要设置为活动的条目。

withAllowedModifierKeys

用户按下方向键时,可以按住修饰键并防止其默认操作。默认为不允许任何修饰键。

参数

keys

ListKeyManagerModifierKey[]

返回值
this

withHomeAndEnd

配置按键管理器,以在按下 Home 或 End 键时分别激活第一项和最后一项。

参数

enabled

boolean = true

按下 Home 键或 End 键时是否激活第一项/最后一项。

返回值
this

withHorizontalOrientation

配置按键管理器以水平移动选择。传递 null 将禁用水平移动。

参数

direction

"ltr" | "rtl"

所选内容可以移动的方向。

返回值
this

withPageUpDown

将键盘管理器配置为在按下 Page-Up 或 Page-Down 键时分别在向上/向下方向激活每第 10 个、已配置的或第一个/最后一个元素。

参数

enabled

boolean = true

按 Page-Up 或 Page-Down 键是否激活第一个/最后一个条目。

delta

number = 10

按下 Home 键或 End 键时是否激活第一项/最后一项。

返回值
this

withTypeAhead

打开预输入模式,该模式允许用户通过键入来设置活动条目。

参数

debounceInterval

number = 200

在最后一次按键操作之后等待一小段时间,然后再设置活动条目。

返回值
this

withVerticalOrientation

配置按键管理器是否应该能够垂直移动选择。

参数

enabled

boolean = true

是否应启用垂直选择。

返回值
this

withWrap

配置回卷模式,当该模式确定在指定方向上没有更多条目时,活动条目是否将回卷列表的另一端。

参数

shouldWrap

boolean = true

到达末尾时列表是否应该回卷。

返回值
this

此类管理可选列表的键盘事件。如果向其传递条目的查询列表,则当发生方向键事件时,它将正确设置活动条目。

属性
名称 描述

activeItem: T | null

活动条目。

activeItemIndex: number | null

当前活动条目的索引。

change: Subject<number>

每当列表管理器的活动条目更改时发出通知的流。

tabOut: Subject<void>

只要按下 TAB 键,流就会发出通知,因此当焦点从列表移开时,组件可以做出反应。

方法
cancelTypeahead

取消当前的预先输入序列。

返回值
this

destroy

清理键盘管理器。

isTyping

获取用户当前是否正在使用预输入函数键入此管理员。

返回值
boolean

onKeydown

根据传入的键盘事件设置激活条目。

参数

event

KeyboardEvent

用于确定哪个元素应处于活动状态的键盘事件。

setActiveItem

把激活条目设置为由索引指定的条目。

参数

index

number

要设置为活动的条目的索引。

setActiveItem

将活动条目设置为指定的条目。

参数

item

T

要设置为活动的条目。

setFirstItemActive

将激活条目设置为列表中第一个可用的(enabled)条目。

setLastItemActive

将激活条目设置为列表中最后一个可用的(enabled)条目。

setNextItemActive

将激活条目设置为列表中的下一个可用的(enabled)条目。

setPreviousItemActive

将激活条目设置为列表中的上一个可用的(enabled)条目。

skipPredicate

设置谓词函数,该函数会确定列表按键管理器应跳过哪些条目。

参数

predicate

(item

确定是否应跳过指定条目的函数。

返回值
this

updateActiveItem

允许在没有任何其他效果的情况下设置激活状态。

参数

index

number

要设置为活动条目的索引。

updateActiveItem

允许设置活动条目,而没有任何其他影响。

参数

item

T

要设置为活动的条目。

withAllowedModifierKeys

用户按下方向键时,可以按住修饰键并防止其默认操作。默认为不允许任何修饰键。

参数

keys

ListKeyManagerModifierKey[]

返回值
this

withHomeAndEnd

配置按键管理器,以在按下 Home 或 End 键时分别激活第一项和最后一项。

参数

enabled

boolean = true

按下 Home 键或 End 键时是否激活第一项/最后一项。

返回值
this

withHorizontalOrientation

配置按键管理器以水平移动选择。传递 null 将禁用水平移动。

参数

direction

"ltr" | "rtl"

所选内容可以移动的方向。

返回值
this

withPageUpDown

将键盘管理器配置为在按下 Page-Up 或 Page-Down 键时分别在向上/向下方向激活每第 10 个、已配置的或第一个/最后一个元素。

参数

enabled

boolean = true

按 Page-Up 或 Page-Down 键是否激活第一个/最后一个条目。

delta

number = 10

按下 Home 键或 End 键时是否激活第一项/最后一项。

返回值
this

withTypeAhead

打开预输入模式,该模式允许用户通过键入来设置活动条目。

参数

debounceInterval

number = 200

在最后一次按键操作之后等待一小段时间,然后再设置活动条目。

返回值
this

withVerticalOrientation

配置按键管理器是否应该能够垂直移动选择。

参数

enabled

boolean = true

是否应启用垂直选择。

返回值
this

withWrap

配置回卷模式,当该模式确定在指定方向上没有更多条目时,活动条目是否将回卷列表的另一端。

参数

shouldWrap

boolean = true

到达末尾时列表是否应该回卷。

返回值
this

允许在 DOM 元素内捕获焦点的类。

此类使用一种策略模式来确定如何捕获焦点。请参阅 FocusTrapInertStrategy。

属性
名称 描述

enabled: boolean

是否启用了此 FocusTrap。

方法
attachAnchors

将这些锚点插入 DOM。这通常是在构造函数中自动完成的,但是对于诸如 *ngIf 之类的指令,可以将其推迟。

返回值
boolean

焦点陷阱是否成功附加。如果目标元素当前不在 DOM 中,则可能不是这种情况。

destroy

通知 FocusTrapManager,此 FocusTrap 将被销毁。

focusFirstTabbableElement

让焦点陷阱范围内第一个可 tab 的元素获得焦点。

参数

选项 ?

FocusOptions

返回值
boolean

焦点是否成功移动。

异步
focusFirstTabbableElementWhenReady

等待 zone 稳定,然后让焦点陷阱内第一个可 tab 的元素获得焦点。

参数

选项 ?

FocusOptions

返回值
Promise<boolean>

返回一个解析为布尔值的 promise,具体取决于焦点是否成功移动。

focusInitialElement

在初始化焦点陷阱时应获得焦点的元素。

参数

选项 ?

FocusOptions

返回值
boolean

焦点是否成功移动。

异步
focusInitialElementWhenReady

等待 zone 稳定,然后聚焦用户指定的第一个元素或第一个可 tab 的元素。

参数

选项 ?

FocusOptions

返回值
Promise<boolean>

返回一个解析为布尔值的 promise,具体取决于焦点是否成功移动。

focusLastTabbableElement

让焦点陷阱范围内最后一个可 tab 的元素获得焦点。

参数

选项 ?

FocusOptions

返回值
boolean

焦点是否成功移动。

异步
focusLastTabbableElementWhenReady

等待 zone 稳定,然后让焦点陷阱内最后一个可 tab 的元素获得焦点。

参数

选项 ?

FocusOptions

返回值
Promise<boolean>

返回一个解析为布尔值的 promise,具体取决于焦点是否成功移动。

hasAttached

检查焦点陷阱是否已附加成功。

返回值
boolean

轻型 FocusTrapInertStrategy,添加了文档焦点事件侦听器以将焦点重定向回 FocusTrap 内部。

方法
allowFocus

删除在 preventFocus 中添加的事件侦听器。

参数

focusTrap

ConfigurableFocusTrap

preventFocus

添加一个文档事件监听器,使焦点保持在 FocusTrap 内部。

参数

focusTrap

ConfigurableFocusTrap

允许在 DOM 元素内捕获焦点的类。

此类当前使用相对简单的方法进行焦点捕获。它假定 tab 顺序与 DOM 顺序相同,但这不一定正确。和 tabIndex > 0 一样,flex order 和 Shadow DOM 之类的都可能导致两者未对齐。

Deprecated
属性
名称 描述

enabled: boolean

焦点陷阱是否处于活动状态。

endAnchorListener: () => this.focusFirstTabbableElement()

startAnchorListener: () => this.focusLastTabbableElement()

方法
attachAnchors

将这些锚点插入 DOM。这通常是在构造函数中自动完成的,但是对于诸如 *ngIf 之类的指令,可以将其推迟。

返回值
boolean

焦点陷阱是否成功附加。如果目标元素当前不在 DOM 中,则可能不是这种情况。

destroy

清理锚点以销毁焦点陷阱。

focusFirstTabbableElement

让焦点陷阱范围内第一个可 tab 的元素获得焦点。

参数

选项 ?

FocusOptions

返回值
boolean

焦点是否成功移动。

异步
focusFirstTabbableElementWhenReady

等待 zone 稳定,然后让焦点陷阱内第一个可 tab 的元素获得焦点。

参数

选项 ?

FocusOptions

返回值
Promise<boolean>

返回一个解析为布尔值的 promise,具体取决于焦点是否成功移动。

focusInitialElement

在初始化焦点陷阱时应获得焦点的元素。

参数

选项 ?

FocusOptions

返回值
boolean

焦点是否成功移动。

异步
focusInitialElementWhenReady

等待 zone 稳定,然后聚焦用户指定的第一个元素或第一个可 tab 的元素。

参数

选项 ?

FocusOptions

返回值
Promise<boolean>

返回一个解析为布尔值的 promise,具体取决于焦点是否成功移动。

focusLastTabbableElement

让焦点陷阱范围内最后一个可 tab 的元素获得焦点。

参数

选项 ?

FocusOptions

返回值
boolean

焦点是否成功移动。

异步
focusLastTabbableElementWhenReady

等待 zone 稳定,然后让焦点陷阱内最后一个可 tab 的元素获得焦点。

参数

选项 ?

FocusOptions

返回值
Promise<boolean>

返回一个解析为布尔值的 promise,具体取决于焦点是否成功移动。

hasAttached

检查焦点陷阱是否已附加成功。

返回值
boolean

toggleAnchors

切换 tabindex 以捕获 Tab 焦点或允许脱离。

参数

启用:

锚点是否应该捕获 Tab 键。

enabled

boolean

isFocusable 方法的配置。

属性
名称 描述

ignoreVisibility: boolean

是否将不可见元素计入可获得焦点的元素。

用于配置 InputModalityDetector 行为的选项。

属性
名称 描述

ignoreKeys: number[]

检测键盘输入模式时要忽略的按键。

本接口用于注册消息元素并保留具有相同消息的注册数量的计数,以及用于 aria-describedby 对消息元素的引用。

属性
名称 描述

messageElement: Element

包含消息的元素。

referenceCount: number

通过 aria-describedby 引用此消息元素的元素数。

这是突出显示项的界面(由 ActiveDescendantKeyManager 使用)。每个条目都必须知道如何将自己设置为活动或非活动样式,以及当前是否处于禁用状态。

方法
setActiveStyles

将活动条目的样式应用于此条目。

setInactiveStyles

将非活动条目的样式应用于此条目。

这是可获取焦点条目的接口(由 FocusKeyManager 使用)。每个条目都必须知道如何获取焦点,无论当前是否已禁用并能提供其标签。

方法
focus

让此 FocusableOption 获得焦点。

参数

origin ?

FocusOrigin

此接口用于可传递给 ListKeyManager 的条目。

属性
名称 描述

disabled: boolean

该选项是否已禁用。

方法
getLabel

获取此选项的标签。

返回值
string

用于创建 ConfigurableFocusTrap 的选项。

属性
名称 描述

defer: boolean

是否推迟到由用户手动完成 FocusTrap 元素的创建。

一种策略,指示 FocusTrap 应如何防止 FocusTrap 外部的元素获得焦点。

方法
allowFocus

通过 preventFocus 以前的状态,来把元素恢复为不可获得焦点的状态。

参数

focusTrap

FocusTrap

preventFocus

使 focusTrap 之外的所有元素都无法获得焦点。

参数

focusTrap

FocusTrap

可用于配置 LiveAnnouncer 的默认选项的对象。

属性
名称 描述

duration: number

朗读消息的默认持续时间。

politeness: AriaLivePoliteness

朗读的默认礼貌度。

对应于可以传递给原生 focus 事件的选项。通过 https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus

属性
名称 描述

preventScroll: boolean

浏览器在焦点变化时是否应滚动到该元素。

FocusMonitor 在可注入服务级别的选项。

属性
名称 描述

detectionMode: FocusMonitorDetectionMode

addAriaReferencedId

将指定 ID 添加到元素上特定的 ARIA 属性上。用于诸如 aria-labelledby,aria-owns 等属性。

参数

el

Element

attr

`aria-${string}`

id

string

removeAriaReferencedId

从元素上指定的 ARIA 属性中删除特定的 ID。用于诸如 aria-labelledby,aria-owns 等属性。

参数

el

Element

attr

`aria-${string}`

id

string

getAriaReferenceIds

获取元素上指定的 ARIA 属性引用的 ID 列表。用于诸如 aria-labelledby,aria-owns 等属性。

参数

el

Element

attr

string

返回值
string[]

isFakeMousedownFromScreenReader

获取某个事件是否可能是屏幕阅读器派发的伪 mousedown 事件。

参数

event

MouseEvent

返回值
boolean

isFakeTouchstartFromScreenReader

获取某个事件是否可能是屏幕阅读器派发的伪 touchstart 事件。

参数

event

TouchEvent

返回值
boolean

此服务检测到的输入模式。如果输入模式未知,则使用 Null。

type InputModality = 'keyboard' | 'mouse' | 'touch' | null;

ListKeyManager 处理的修饰键。

type ListKeyManagerModifierKey = 'altKey' | 'ctrlKey' | 'metaKey' | 'shiftKey';

可能的礼貌度。

type AriaLivePoliteness = 'off' | 'polite' | 'assertive';
type FocusOrigin = 'touch' | 'mouse' | 'keyboard' | 'program' | null;

InputModalityDetector 的默认选项。

默认情况下忽略修饰键(即按下时不会导致服务检测键盘输入模式),这有两个原因:

  1. 修饰键通常与鼠标一起使用以执行诸如“右键单击”或“在新选项卡中打开”之类的操作,因此不太能代表实际的键盘交互。
  2. 当使用 Control + Option 进行线性导航时,VoiceOver 会触发一些键盘事件(但不会与 Caps Lock 混淆)。因此,为了与其他屏幕阅读器保持一致,我们忽略这些键以免改变输入模式。

请注意,默认情况下我们不会忽略 Safari 上的右侧 Meta 键,因为它与其他浏览器上的 ContextMenu 键具有相同的键代码。当我们转而使用 event.key 时,我们能够区分两者。

const INPUT_MODALITY_DETECTOR_DEFAULT_OPTIONS: InputModalityDetectorOptions;

InputModalityDetector 的可注入选项。这些会与默认选项进行浅合并。

const INPUT_MODALITY_DETECTOR_OPTIONS: InjectionToken<InputModalityDetectorOptions>;
Deprecated

用于追加所有消息的正文容器的 ID。

const MESSAGES_CONTAINER_ID: "cdk-describedby-message-container";
Deprecated

用于所创建的每个消息元素的 ID 前缀。

const CDK_DESCRIBEDBY_ID_PREFIX: "cdk-describedby-message";
Deprecated

用来指定消息元素描述的每个宿主元素的属性。

const CDK_DESCRIBEDBY_HOST_ATTRIBUTE: "cdk-describedby-host";

用于指定惰性策略的注入令牌。

const FOCUS_TRAP_INERT_STRATEGY: InjectionToken<FocusTrapInertStrategy>;
const LIVE_ANNOUNCER_ELEMENT_TOKEN: InjectionToken<HTMLElement>;

注入令牌,可用于配置 LiveAnnouncer 的默认选项。

const LIVE_ANNOUNCER_DEFAULT_OPTIONS: InjectionToken<LiveAnnouncerDefaultOptions>;

FocusMonitorOptions 的 InjectionToken。

const FOCUS_MONITOR_DEFAULT_OPTIONS: InjectionToken<FocusMonitorOptions>;