From 2b5857f62436150232d8fe260f5bddebff5e783c Mon Sep 17 00:00:00 2001 From: Jan Drewniak Date: Thu, 9 Jul 2020 22:33:25 +0200 Subject: [PATCH] Add enter/spacebar keyboard support to sidebar. Bug: T255727 Depends-On: I388ac873997aa02d713ae7453216e0cb7d983993 Change-Id: Ie438db4f752c77aa40191d2bceb83f52d3371c6c --- resources/CheckboxHack.d.ts | 1 + resources/skins.vector.js/sidebar.js | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/resources/CheckboxHack.d.ts b/resources/CheckboxHack.d.ts index 23f774b..13c17bf 100644 --- a/resources/CheckboxHack.d.ts +++ b/resources/CheckboxHack.d.ts @@ -2,6 +2,7 @@ interface CheckboxHack { updateAriaExpanded(checkbox: HTMLInputElement, button: HTMLElement): void; bindUpdateAriaExpandedOnInput(checkbox: HTMLInputElement, button: HTMLElement): CheckboxHackListeners; bindToggleOnClick(checkbox: HTMLInputElement, button: HTMLElement): CheckboxHackListeners; + bindToggleOnSpaceEnter(checkbox:HTMLInputElement, button:HTMLElement): CheckboxHackListeners; bindDismissOnClickOutside(window: Window, checkbox: HTMLInputElement, button: HTMLElement, target: Node): CheckboxHackListeners; bindDismissOnFocusLoss(window: Window, checkbox: HTMLInputElement, button: HTMLElement, target: Node): CheckboxHackListeners; bind(window: Window, checkbox: HTMLInputElement, button: HTMLElement, target: Node): CheckboxHackListeners; diff --git a/resources/skins.vector.js/sidebar.js b/resources/skins.vector.js/sidebar.js index b2939fe..cdc106e 100644 --- a/resources/skins.vector.js/sidebar.js +++ b/resources/skins.vector.js/sidebar.js @@ -37,6 +37,7 @@ function initCheckboxHack( checkbox, button ) { checkboxHack.bindToggleOnClick( checkbox, button ); checkboxHack.bindUpdateAriaExpandedOnInput( checkbox, button ); checkboxHack.updateAriaExpanded( checkbox, button ); + checkboxHack.bindToggleOnSpaceEnter( checkbox, button ); } } @@ -64,7 +65,7 @@ function saveSidebarState( checkbox ) { */ function bindSidebarClickEvent( checkbox, button ) { if ( checkbox instanceof HTMLInputElement && button ) { - button.addEventListener( 'click', saveSidebarState( checkbox ) ); + checkbox.addEventListener( 'input', saveSidebarState( checkbox ) ); } }