Files
48c8137835 Accessibility (gap 25), slice 2: Info, Flowchart, Script Console and the 3D Camera Tracker block named, described and keyboard-operable (builds on #1339) (#1341)
* #1335: accessibility slice 2: Info, Flowchart, Script Console and the 3D Camera Tracker block named, described and keyboard-operable

The audit gets read-outs, graphics and logs as described items (a name is required in a fixed panel), dedicated maximized scenarios for the panels the shared loop squeezes, and minimum counts for the new zero panels.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Review: Enter/Space on a favourite star only toggles it; keyboard activation of a property label; settings page scrolls to focus; sharper UI test assertions

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Refresh the accessibility audit baseline after merging upstream/main

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* a11y audit: hold the machine-dependent Media Browser scenario to its upper bound

The Media Browser opens on the home folder, so a runner with fewer files finds fewer controls and
the 'improved, lower the entry' check failed in CI. The entry stays an upper bound.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Merge upstream/main and updated feat-gap25-a11y-audit into feat-gap25-a11y-panels-2

Brought in the updated feat-gap25-a11y-audit (which already contains upstream/main). Conflict: crates/ui-egui/src/menus.rs, which upstream split into menus/*.rs. Took the slim module and re-applied this branch's Flowchart hunks where the code now lives: nudge() skips the Flowchart (menus/invoke.rs) and Enter is left to the Flowchart in handle_shortcuts (menus/shortcuts.rs).

Also removed a duplicate MACHINE_DEPENDENT const in tests/ui_accessibility_audit.rs that the two branches both added. The audit BASELINE still matches the measured findings.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Flowchart: split show() to pass the stricter clippy limits from main

Main now denies cognitive_complexity (30) and too_many_arguments; the
merged flowchart panel exceeded it. The keyboard navigation, the
key-to-node mapping, pan-into-view, node commands, the accessible node
name and the option params move into small helpers with unchanged
behaviour.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Camera tracker a11y test: wait for the analysis result instead of one frame

The test pressed Enter, ran one frame and expected to see the background job.
On a fast runner the job starts, ends and is written back inside that frame,
so the state was never seen. Undo the first analysis, press Enter, and wait
(bounded) for the new analysis step in the undo history.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Accessibility: one hours range for the accessibility pass in ui-parity.md; test that Flowchart automation labels stay English

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Flowchart toolbar: keep the English label for the automation registration

The translated text is shown and spoken; the automation label stays English.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-authored-by: OpenAI Codex <noreply@openai.com>
Co-authored-by: FredApps <153173854+FredApps@users.noreply.github.com>
2026-11-06 19:12:07 +01:00

9.6 KiB
Raw Permalink Blame History

UI parity

Last reviewed: 2026-10-12 · Last updated: 2026-10-18 · Change: minor (accessibility row, second slice: Info, Flowchart, Script Console and the 3D Camera Tracker block named and keyboard-operable, #1335; earlier changes: accessibility row: an AccessKit audit and a contrast test, three more panels named and keyboard-operable, #1335; shape group Contents row elided; path-editing layer bounds #1220; closed issue references re-audited against upstream/main 470ea7a3) · Target: Adobe After Effects 2026

How closely EffectCraft's interaction matches After Effects: tools, handles, snapping, nudging, modifier keys, shortcuts, drag behaviour, numeric entry, panels, context menus and feel. Evidence is the code at origin/main 1446e27, the 42 scripted UI test files in crates/ui-egui/tests (real pointer and keyboard events, run headless), fidelity/workflow-checks.md and the issue tracker. After Effects was not driven for this pass, so "same as After Effects" means "matches its documentation and users have not reported a difference".

Overall ≈ 65% (estimated): the shape of the interface is After Effects' (menus, panels, workspaces, shortcuts), and the scripted tests cover many interactions, but users keep finding feel and platform differences, and the 26.x interface changes are not in yet.

Area Status % Evidence and gaps
Menu bar After Effects' menus, order, submenus and labels; native on macOS; keyboard-operable in-window bar 95% 587 entries in crates/engine/src/menus.rs; Adobe-service entries omitted by design; ui_menus tests (#279)
Panels and workspaces Every After Effects panel; all standard workspaces; drag-to-dock, tabs, floating panels, maximise 75% ui_tabs, ui_panels; on Windows, macOS and X11 floating panels are OS windows of their own on any screen (on Wayland, the web and in embedded viewports they stay in the app window), with tabs and groups dragging between windows and shortcuts working in them (#486); #302, #301 and #320 (docking, stacked-panel headers, workspace persistence) are closed
Timeline Switches, modes, parent & link, twirl-downs, reveal shortcuts (U, UU, P, S, R, T, A, E, M, F, Alt+Shift…), pick whips, graph editor, work area, markers 75% ui_keyframes, ui_timeline_*; expand precomps in place (#601); #456, #457, #569 and #355 (Graph Editor jitter and buttons, negative rotation, bulk keyframing) are closed; Proportional Scrubbing (26.2: Ctrl+Alt / Cmd+Opt scrub of hot text spreads the change over the selected layers by selection order, #770) matched for layers selected as a whole, not yet for individually selected properties; every layer has the Video switch, nulls, cameras and lights included (a hidden null, camera or light has no box or handles in the viewer and isn't picked there; other selected hidden layers keep their layer controls and paths, #1769); a row control (a switch, the label swatch, a Modes cell) clicked on one of several selected layers acts on the whole selection, with the layers the switch doesn't apply to left out (#1849); a shape group's inner Contents (After Effects' elided Vectors group) draws no row — the group's path, fill/stroke and Transform list directly under it
Composition viewer Selection, handles with direction-aware cursors, rulers, guides, grids, snapping, channels, exposure, region of interest, snapshots, 3D views, Spacebar hand 70% ui_viewer, ui_viewers; Cmd/Ctrl +/− doesn't zoom (#570); anchor point grab on Linux (#492); #352 (snapping) is closed; no 3D transform gizmos (#392, #347); percentage guides (26.5) exist as View ▸ Add Percentage Guide and Convert Guides to Percentage / Pixels (a guide stores a percent of the comp, so it follows comp-size changes; behaviour inferred from the release note, not compared with After Effects); Copy Frame to Clipboard (26.3) is in the Composition menu and the viewer's context menu
Tools panel All After Effects tools; long-press flyouts; Tool Creates Shape / Mask; Fill / Stroke options 80% #213, #227 fixed; #553 (pen and vertex tools on motion paths) is closed
Nudging and modifiers Arrow nudge (1 px, Shift 10 px), Alt/Option duplicates and slips, Shift constrains 75% #290 nudging fixed; #2968 Alt-drag in the viewer duplicates the dragged layers; #491 (Linux multi-layer edits) is closed
Numeric entry Scrubbable values, typed entry with Tab / Shift+Tab, angle revolutions, Escape cancels, non-finite rejected 85% ui_angles, ui_inline_edit (#93, #141, #361); rename arrows on Linux (#488)
Effect Controls After Effects' twirl-downs, angle dial, point crosshair, eyedropper, curves/levels editors, effect menu on right-click 70% ui_effect_controls, ui_fx_editors; 26.5 rebuilt this panel with icon controls and effect colour labels: labels exist (a colour bar on the effect header and on the effect's Timeline row, right-click Label menu, effect.setLabel), the rebuilt controls are not matched
Context menus Layer, property, Project, Timeline empty area, work area, labels with colours 80% ui_blank_context_menus, ui_project_rows; #227, #290, #407 fixed; a comp's Project row menu has Composition Settings… (#1058); layer context menu has Layer Styles (#1611)
Keyboard shortcuts After Effects' defaults; Keyboard Shortcuts editor that rebinds and saves sets 75% Shortcut editor in Settings; #467 (adding shortcuts on Linux), #428 and #336 are closed; no shortcuts for scripts
Drag and drop Project → Timeline / viewer / New Comp / Render Queue; effects onto layers; files from the OS 65% ui_drag_drop; OS drops fail on Wayland (winit) and some Linux setups (#268); #552, #351 (multi-file drops) and #511 (crash dragging over the import dialog) are closed
Text editing on canvas Point and paragraph text, per-character styles, Character / Paragraph panels, OpenType and variable axes 70% ui_text_edit, ui_font_search; paragraph alignment inverted (#316); toolbar font options (#550); font search by typing (#583) is closed; the font menus' variable-font filter (26.3) landed (#741)
Preview feel Spacebar / Numpad 0 previews, RAM preview, cache bars, adaptive resolution 55% ui_ram_preview, ui_live_preview; stutter (#595, #304); scrubbing lag (#329, closed by #784)
Home screen, Learn, templates Home with recent projects, template gallery, interactive Learn tutorials 70% Layout nitpicks (#581); Home literals untranslated (#574)
Quick Apply (26.2) Search to apply effects, presets or commands partial A command palette exists; not After Effects' Quick Apply
Accessibility AccessKit enabled; ui_accessibility_audit counts unnamed or roleless controls per panel: Project (#776), Effects & Presets, Settings (all pages), Render Queue with Templates, Info, Flowchart, Script Console and the 3D Camera Tracker block are at zero, with names, roles, selected / open / checked state and arrow-key, Home / End, Enter, Space operation (#1335); painted-only text (Info, status lines) and the console output are read-outs and a log in the tree; ui_contrast checks theme tokens against WCAG 2 20% No screen reader has been run on anything; the other panels are counted, not fixed (Timeline ≈ 55 unnamed controls; Scopes, Tracker, Layer and the Waveform have open PRs on their files and are untouched; their on-screen scopes and waveform have no text description yet); 13 of 48 token pairs are below WCAG 2 (primary button text, error text, control borders, Light theme warning colour); focus order across panels, colour-blindness and reduced motion are unchecked; app shortcuts pause while a widget has keyboard focus
UI scale Settings ▸ Appearance ▸ UI Scale 75–200% beyond After Effects follows the system's scaling (#284)

Path editing (#1220): the Composition viewer suppresses a selected layer’s transform box while using a Pen-family tool on a visible path, or while selecting its vertices with the Selection tool. Path points, Bézier handles and the path’s free-transform controls remain available. Layer transform tools and ordinary layer selection restore the box. Headless ui_viewer tests cover shape paths and masks, corner-vertex dragging and undo, and layers without visible paths.

Estimate

≈ 60–110 h: the open interaction issues above (25–45 h, about 0.2–0.5 h each with a scripted test), 3D gizmos 8–15 h, the 26.x interface changes 10–20 h, an accessibility pass 10–22 h as in gaps.md gap 25 (two slices, seven panels and the audit, are done). Checking feel against After Effects needs the owner's Mac with After Effects running; most of the rest parallelises.

Revision history

Date Change Summary
2026-10-18 minor A shape group's inner Contents (After Effects' elided Vectors group) draws no row: the group's path, fill/stroke and Transform list directly under the group
2026-10-13 minor Accessibility row, second slice: Info, Flowchart, Script Console and the 3D Camera Tracker block named and keyboard-operable (#1335); no screen reader tested
2026-10-13 minor Accessibility row: AccessKit audit and contrast tests, Effects & Presets, Settings and Render Queue named and keyboard-operable (#1335); no screen reader tested
2026-10-13 patch Layer bounds are suppressed during path-point editing (#1220); shape/mask interaction regressions
2026-10-12 minor Closed issues (#302, #320, #491, #511, #553 and others) marked as closed instead of open; panels in their own windows (#486)
2026-10-12 minor Percentage guides and effect colour labels (26.5) added; rows updated
2026-10-10 major First UI parity checklist