Problem/Motivation
Two authoring editors build a list of identical rows and give a screen reader nothing to tell one row from another. The project has already answered this question once, in ConditionTreeBuilder, whose comment records both the symptom and the fix: a fieldset with no title "renders an empty legend, and a screen-reader user building an All/Any condition heard one unnamed group per row", so each row is titled "Sub-condition @number".
1. Every node-feature row is an unnamed group. PluginSequenceFeatureBase::buildRow() wraps each row in ['#type' => 'fieldset'] with no title at all, so a node's Escalation timers and its Assignments both present as a run of groups with no accessible name. That is the base class both features are built on, so it is every such editor.
2. Every row of the workflow variables form carries the same field labels. WorkflowVariablesForm::row() gives the name and value fields an invisible title, which is right for a table, but the same one on every row: a screen-reader user hears "Variable name, edit text" once per declared variable with nothing saying which variable it belongs to, so a value cannot be corrected without sighted context. The project's own precedent names the row: the provider table in VariablesTask titles its per-row control "Order for @label", and WorkflowMigrateForm titles its per-node select "Tokens on "@node" move to".
Orchestra is aimed at public bodies, where accessibility is a legal requirement rather than a refinement, and both of these are authoring surfaces an editor works in daily.
Proposed resolution
- Title each node-feature row after what it is and where it stands, as the condition tree does.
- Name the workflow variables form's per-row fields after the row they belong to.
Remaining tasks
None.
AI-Generated: Yes (Claude Code was used to help draft this issue summary and to write the code and tests on the merge request. I reviewed and ran the work myself before posting it.)
Issue fork orchestra-3622387
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #3
mably commentedComment #5
mably commented