diff --git a/packages/svelte/src/compiler/phases/2-analyze/visitors/shared/a11y/constants.js b/packages/svelte/src/compiler/phases/2-analyze/visitors/shared/a11y/constants.js index a1b70f2207..684ea92094 100644 --- a/packages/svelte/src/compiler/phases/2-analyze/visitors/shared/a11y/constants.js +++ b/packages/svelte/src/compiler/phases/2-analyze/visitors/shared/a11y/constants.js @@ -67,7 +67,21 @@ export const a11y_interactive_handlers = [ 'mousemove', 'mouseout', 'mouseover', - 'mouseup' + 'mouseup', + // Pointer events + 'pointerdown', + 'pointerup', + 'pointermove', + 'pointerenter', + 'pointerleave', + 'pointerover', + 'pointerout', + 'pointercancel', + // Touch events + 'touchstart', + 'touchend', + 'touchmove', + 'touchcancel' ]; export const a11y_recommended_interactive_handlers = [ diff --git a/packages/svelte/tests/validator/samples/a11y-no-static-element-interactions/input.svelte b/packages/svelte/tests/validator/samples/a11y-no-static-element-interactions/input.svelte index ee7ed4f084..8829d784c8 100644 --- a/packages/svelte/tests/validator/samples/a11y-no-static-element-interactions/input.svelte +++ b/packages/svelte/tests/validator/samples/a11y-no-static-element-interactions/input.svelte @@ -17,3 +17,6 @@
{}}>
{}} on:mouseup={() => {}} on:copy={() => {}}>link +
{}}>
+
{}}>
+
{}}>
diff --git a/packages/svelte/tests/validator/samples/a11y-no-static-element-interactions/warnings.json b/packages/svelte/tests/validator/samples/a11y-no-static-element-interactions/warnings.json index ab4b58a839..41325a8756 100644 --- a/packages/svelte/tests/validator/samples/a11y-no-static-element-interactions/warnings.json +++ b/packages/svelte/tests/validator/samples/a11y-no-static-element-interactions/warnings.json @@ -22,5 +22,41 @@ "column": 0, "line": 19 } + }, + { + "code": "a11y_no_static_element_interactions", + "end": { + "column": 37, + "line": 20 + }, + "message": "`
` with a pointerdown handler must have an ARIA role", + "start": { + "column": 0, + "line": 20 + } + }, + { + "code": "a11y_no_static_element_interactions", + "end": { + "column": 38, + "line": 21 + }, + "message": "`
` with a pointerenter handler must have an ARIA role", + "start": { + "column": 0, + "line": 21 + } + }, + { + "code": "a11y_no_static_element_interactions", + "end": { + "column": 36, + "line": 22 + }, + "message": "`
` with a touchstart handler must have an ARIA role", + "start": { + "column": 0, + "line": 22 + } } ]