Skip to content

Commit

Permalink
feat(#50): make menu toggle keyboard accessible
Browse files Browse the repository at this point in the history
  • Loading branch information
AdrianSolberg committed Oct 29, 2025
1 parent 1315491 commit c77e6f5
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 0 deletions.
24 changes: 24 additions & 0 deletions src/Accessibility/makeMenuTabbable.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
/**
* Makes menu tabbable keyboard accessible.
*/
export function makeMenuTabbable() {
makeMenuToggleTabbable();
}

/**
* Makes menu toggle tabbable and adds keyboard event listeners.
*/
function makeMenuToggleTabbable() {
const quickButtonsContainer = document.getElementById('potree_quick_buttons');
if (!quickButtonsContainer) return;
const toggle = quickButtonsContainer.querySelector('.potree_menu_toggle');
if (toggle) {
toggle.tabIndex = 0;
toggle.addEventListener('keydown', (e) => {
if (e.key === 'Enter' || e.key === ' ') {
e.preventDefault();
toggle.click();
}
});
}
}
3 changes: 3 additions & 0 deletions src/potreeViewer.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { initAnnotationsPanel } from './AnnotationControl/annotationPanel.js'
import { initMeasurementsPanel } from './MeasurementControl/measurementsPanel.js'
import { initMiniMap } from './MiniMap/miniMap.js'
import { makeMenuTabbable } from './Accessibility/makeMenuTabbable.js'
import {
initThreePanels,
toggleAcceptedLegend
Expand Down Expand Up @@ -125,6 +126,8 @@ export async function createPotreeViewer(

makeGlobeBackgroundOption()

makeMenuTabbable()

initMeasurementsPanel(viewer)
initAnnotationsPanel(viewer)
initMiniMap(viewer)
Expand Down

0 comments on commit c77e6f5

Please sign in to comment.