| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat(a11y): add ARIA attributes for WCAG 2.1 level AA compliance (#965) * feat(a11y): add ARIA attributes for WCAG 2.1 Level AA compliance Add aria-label, aria-hidden, role, aria-expanded, aria-live, and aria-haspopup attributes across 58 files covering all major UI areas. App shell & layout: - Add role="status" + aria-live="polite" to loading indicator - Add role="main" to main content container - Add role="region" to Widget base component - Add role="toolbar" + aria-label to Controls and QuickAccessToolbar - Add aria-label="Main navigation" to Sidebar nav - Add aria-label="Application header" to Header navbar (distinct from Sidebar) - Add aria-label to Sidebar icon-only links; aria-hidden to icons Widget base components: - Widget: role="region" on root div - Controls: role="toolbar" aria-label="Widget controls" - DropdownButton: aria-haspopup="menu"; accept/forward aria-label prop - All 16 widgets: aria-label="<Name> widget" on root Widget Widget common pattern (all 16 widgets): - aria-label="Expand"/"Collapse" + aria-expanded on minimize button - aria-label="More options" on overflow dropdown - aria-hidden={minimized} on Widget.Content - aria-hidden="true" on all decorative FA icons Widget-specific controls: - Axes: keypad jogging, MDI mode, settings, axis-specific DisplayPanel labels - Console: clear, fullscreen buttons; role="log" on terminal - Connection/Laser/Grbl/Marlin/Smoothie/TinyG: reset and override buttons - Macro: dynamic aria-labels per macro name - Visualizer: workflow (Run/Pause/Stop), camera view/zoom buttons - Webcam/Custom/GCode: toggle, refresh, edit buttons Settings: - All TableRecords: contextual aria-labels on enable/edit/delete actions - Events: use human-readable event strings (mapEventToTextString) - UserAccounts: dynamic "Password"/"Old Password" label - All form inputs: aria-label matching visible label text Fixes: - Correct aria-haspopup="true" to explicit "menu" - Fix duplicate landmark labels (Header vs Sidebar nav) - Fix incomplete Smoothie widget a11y pattern - Add axis context to DisplayPanel "Go to zero"/"Home" buttons - Add aria-labels to all unlabeled Dropdown.Toggle and TaskbarButton elements * fix(lint): fix eslint errors in UpdateRecord and GridLine - Replace double quotes with single quotes in aria-label (UpdateRecord.jsx) - Fix constant-truthiness warning by moving fallback inside THREE.Color constructor (GridLine.js) * fix(lint): replace || with ?? in GridLine and fix setState in componentDidUpdate - Use nullish coalescing (??) instead of || for THREE.Color fallback to correctly handle 0 (black) as a valid color value - Replace setState in componentDidUpdate with componentWillReceiveProps in Tool.jsx to avoid extra re-render and simplify guard condition (React 15 compatible) * style: apply eslint auto-fix formatting and disable jsx-no-leaked-render - Auto-fix JSX closing brace placement and whitespace across all widgets and containers - Disable react/jsx-no-leaked-render rule in .eslintrc.js | 7 个月前 | |
feat(a11y): add ARIA attributes for WCAG 2.1 level AA compliance (#965) * feat(a11y): add ARIA attributes for WCAG 2.1 Level AA compliance Add aria-label, aria-hidden, role, aria-expanded, aria-live, and aria-haspopup attributes across 58 files covering all major UI areas. App shell & layout: - Add role="status" + aria-live="polite" to loading indicator - Add role="main" to main content container - Add role="region" to Widget base component - Add role="toolbar" + aria-label to Controls and QuickAccessToolbar - Add aria-label="Main navigation" to Sidebar nav - Add aria-label="Application header" to Header navbar (distinct from Sidebar) - Add aria-label to Sidebar icon-only links; aria-hidden to icons Widget base components: - Widget: role="region" on root div - Controls: role="toolbar" aria-label="Widget controls" - DropdownButton: aria-haspopup="menu"; accept/forward aria-label prop - All 16 widgets: aria-label="<Name> widget" on root Widget Widget common pattern (all 16 widgets): - aria-label="Expand"/"Collapse" + aria-expanded on minimize button - aria-label="More options" on overflow dropdown - aria-hidden={minimized} on Widget.Content - aria-hidden="true" on all decorative FA icons Widget-specific controls: - Axes: keypad jogging, MDI mode, settings, axis-specific DisplayPanel labels - Console: clear, fullscreen buttons; role="log" on terminal - Connection/Laser/Grbl/Marlin/Smoothie/TinyG: reset and override buttons - Macro: dynamic aria-labels per macro name - Visualizer: workflow (Run/Pause/Stop), camera view/zoom buttons - Webcam/Custom/GCode: toggle, refresh, edit buttons Settings: - All TableRecords: contextual aria-labels on enable/edit/delete actions - Events: use human-readable event strings (mapEventToTextString) - UserAccounts: dynamic "Password"/"Old Password" label - All form inputs: aria-label matching visible label text Fixes: - Correct aria-haspopup="true" to explicit "menu" - Fix duplicate landmark labels (Header vs Sidebar nav) - Fix incomplete Smoothie widget a11y pattern - Add axis context to DisplayPanel "Go to zero"/"Home" buttons - Add aria-labels to all unlabeled Dropdown.Toggle and TaskbarButton elements * fix(lint): fix eslint errors in UpdateRecord and GridLine - Replace double quotes with single quotes in aria-label (UpdateRecord.jsx) - Fix constant-truthiness warning by moving fallback inside THREE.Color constructor (GridLine.js) * fix(lint): replace || with ?? in GridLine and fix setState in componentDidUpdate - Use nullish coalescing (??) instead of || for THREE.Color fallback to correctly handle 0 (black) as a valid color value - Replace setState in componentDidUpdate with componentWillReceiveProps in Tool.jsx to avoid extra re-render and simplify guard condition (React 15 compatible) * style: apply eslint auto-fix formatting and disable jsx-no-leaked-render - Auto-fix JSX closing brace placement and whitespace across all widgets and containers - Disable react/jsx-no-leaked-render rule in .eslintrc.js | 7 个月前 | |
Rename files and restructure folder layout (#440) | 7 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 7 个月前 | ||
| 7 个月前 | ||
| 7 年前 |