From f815ef6dd5855409cddff50d21b62a84941fd0f2 Mon Sep 17 00:00:00 2001 From: braks <78412429+bcakmakoglu@users.noreply.github.com> Date: Wed, 21 Feb 2024 10:53:17 +0100 Subject: [PATCH] fix(core): prevent esc keypress when a11y is disabled --- packages/core/src/components/Edges/EdgeWrapper.ts | 3 ++- packages/core/src/components/Nodes/NodeWrapper.ts | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/core/src/components/Edges/EdgeWrapper.ts b/packages/core/src/components/Edges/EdgeWrapper.ts index d4988674..962c3c43 100644 --- a/packages/core/src/components/Edges/EdgeWrapper.ts +++ b/packages/core/src/components/Edges/EdgeWrapper.ts @@ -44,6 +44,7 @@ const EdgeWrapper = defineComponent({ findNode, isValidConnection, multiSelectionActive, + disableKeyboardA11y, } = useVueFlow() const hooks = useEdgeHooks(props.edge, emits) @@ -334,7 +335,7 @@ const EdgeWrapper = defineComponent({ } function onKeyDown(event: KeyboardEvent) { - if (elementSelectionKeys.includes(event.key) && props.selectable) { + if (!disableKeyboardA11y.value && elementSelectionKeys.includes(event.key) && props.selectable) { const unselect = event.key === 'Escape' if (unselect) { diff --git a/packages/core/src/components/Nodes/NodeWrapper.ts b/packages/core/src/components/Nodes/NodeWrapper.ts index 529569cc..9a079071 100644 --- a/packages/core/src/components/Nodes/NodeWrapper.ts +++ b/packages/core/src/components/Nodes/NodeWrapper.ts @@ -319,7 +319,7 @@ const NodeWrapper = defineComponent({ } function onKeyDown(event: KeyboardEvent) { - if (isInputDOMNode(event)) { + if (isInputDOMNode(event) || disableKeyboardA11y.value) { return } @@ -335,7 +335,7 @@ const NodeWrapper = defineComponent({ unselect, nodeElement.value!, ) - } else if (!disableKeyboardA11y.value && props.draggable && node.value.selected && arrowKeyDiffs[event.key]) { + } else if (props.draggable && node.value.selected && arrowKeyDiffs[event.key]) { ariaLiveMessage.value = `Moved selected node ${event.key.replace('Arrow', '').toLowerCase()}. New position, x: ${~~node .value.position.x}, y: ${~~node.value.position.y}`