diff --git a/src/Accessibility/makeMenuTabbable.js b/src/Accessibility/makeMenuTabbable.js index 001a209..79502e5 100644 --- a/src/Accessibility/makeMenuTabbable.js +++ b/src/Accessibility/makeMenuTabbable.js @@ -2,8 +2,9 @@ * Makes menu tabbable keyboard accessible. */ export function makeMenuTabbable() { - makeMenuToggleTabbable(); - makeMiniMapTabbable(); + makeMenuToggleTabbable() + makeMiniMapTabbable() + makePanelsTabbable() } /** @@ -25,7 +26,7 @@ function makeMenuToggleTabbable() { } /** - * Makes minimap tabbable and adds keyboard event listeners. + * Makes minimap tabbable and keyboard clickable */ function makeMiniMapTabbable() { const quickButtonsContainer = document.getElementById('potree_quick_buttons'); @@ -40,4 +41,23 @@ function makeMiniMapTabbable() { } }); } +} + +/** + * Makes accordion titles tabbable and keyboard clickable + */ +function makePanelsTabbable() { + const menu = document.getElementById('potree_menu'); + if (menu) { + const headers = menu.querySelectorAll('h3'); + headers.forEach((header) => { + header.tabIndex = 0; + header.addEventListener('keydown', (e) => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault(); + header.click(); + } + }); + }); + } } \ No newline at end of file