a11y: keyboard-operable editor chrome + topbar aria-labels

Clickable <div> rows/tiles (page list, layer tree, template cards, asset
picker grid) now expose role="button", a tab stop, and Enter/Space
activation via a shared clickableProps() helper, matching their existing
onClick behavior. TopBar icon-only controls (device switcher, undo/redo,
save, publish, templates, code, preview, back) gain aria-label alongside
their existing title tooltips.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-12 14:50:50 -07:00
parent a036843728
commit 46ebd253f3
7 changed files with 100 additions and 12 deletions
+2 -1
View File
@@ -1,5 +1,6 @@
import React, { useState } from 'react';
import { usePages } from '../../state/PageContext';
import { clickableProps } from '../../utils/a11y';
export const PagesPanel: React.FC = () => {
const {
@@ -286,7 +287,7 @@ export const PagesPanel: React.FC = () => {
) : (
/* Normal page item */
<div
onClick={() => switchPage(page.id)}
{...clickableProps(() => switchPage(page.id))}
style={{
display: 'flex',
alignItems: 'center',