* #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>
9.6 KiB
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/main470ea7a3) · 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 |