Interface IFocusableNode
Représente tout élément pouvant avoir le focus d'entrée.
Signature :
export interface IFocusableNode
Méthodes
Method | Description |
---|---|
canBeFocused() | Indique si ce nœud autorise la mise au point. Si la valeur renvoyée est "false", aucune autre méthode IFocusableNode ne sera appelée. Notez qu'il faut faire particulièrement attention si les implémentations de cette fonction modifient dynamiquement leur valeur de retour au cours de la durée de vie du nœud, car certaines conditions d'environnement peuvent affecter la possibilité de sélectionner l'élément DOM de ce nœud (par exemple, si l'élément a un tabindex positif ou nul). De plus, si vous passez d'une valeur "true" à une valeur "false" alors que le nœud est sélectionné, la sélection actuelle du nœud ni l'état interne de FocusManager ne seront modifiés immédiatement. Par conséquent, certaines fonctions du nœud pourront être appelées ultérieurement lorsqu'il sera désélectionné (car il était auparavant considéré comme sélectionnable au moment de la sélection). Les implémentations doivent généralement toujours renvoyer la valeur "true" ici, sauf dans des circonstances où ce nœud doit être ignoré pour des considérations de focus. Par exemple, il peut s'agir d'un nœud désactivé, en lecture seule, d'une décoration purement visuelle ou d'un nœud sans représentation visuelle qui doit implémenter cette interface (par exemple, en raison d'une interface parente qui l'étend). Gardez à l'esprit les bonnes pratiques en matière d'accessibilité lorsque vous déterminez si un nœud doit être sélectionnable. En effet, même les éléments désactivés et en lecture seule sont souvent utiles pour fournir un contexte organisationnel aux utilisateurs (en particulier lorsqu'ils utilisent un lecteur d'écran). |
getFocusableElement() | Renvoie l'élément DOM qui peut être explicitement demandé pour recevoir le focus. IMPORTANT : Veuillez noter que cet élément doit être visible sur la page, car il sera explicitement sélectionné et son style sera modifié en fonction de son état de sélection actuel (c'est-à-dire flou, activement sélectionné et passivement sélectionné). L'élément sera associé à l'un des deux styles suivants (l'absence de style indique que l'élément est flou ou non sélectionné) : - blocklyActiveFocus - blocklyPassiveFocus L'élément renvoyé doit également avoir un ID valide spécifié, et cet ID doit être unique sur l'ensemble de la page. Si l'ID n'est pas suffisamment unique, il est possible que la tentative de sélection d'un nœud (par exemple, par un clic de souris) entraîne la sélection d'un autre nœud portant le même ID par FocusManager. L'élément renvoyé doit être visible si le nœud est ciblé via FocusManager.focusNode() ou FocusManager.focusTree(). Un élément peut être masqué jusqu'à ce que onNodeFocus() soit appelé, ou devenir masqué avec un appel à onNodeBlur(). L'élément renvoyé ne devrait pas changer pendant toute la durée de vie du nœud (c'est-à-dire que ses propriétés peuvent changer, mais un nouvel élément ne devrait jamais être renvoyé). De plus, la valeur tabindex de l'élément renvoyé sera écrasée tout au long du cycle de vie de ce nœud et de FocusManager. Si un nœud doit pouvoir être sélectionné directement sans l'être d'abord via FocusManager, il doit définir son propre index de tabulation. |
getFocusableTree() | Renvoie l'arborescence parente la plus proche de ce nœud (dans les cas où une arborescence comporte des arborescences distinctes en dessous), qui représente l'arborescence à laquelle appartient ce nœud. |
onNodeBlur() | Appelé lorsque ce nœud perd le focus actif. Il peut encore avoir une mise au point passive. Cela présente les mêmes restrictions d'implémentation que onNodeFocus(). |
onNodeFocus() | Appelé lorsque ce nœud reçoit le focus actif. Notez que les implémentations peuvent modifier les modificateurs de visibilité, mais qu'elles doivent éviter les actions suivantes : - Créer ou supprimer des éléments DOM (y compris via le rendu ou le tiroir). - Affecter la sélection via des appels DOM focus() ou le FocusManager. |