Repository navigation
Conversation
myabc
force-pushed
the
feature/dream-955-table-tooltips
branch
from
October 28, 2026 01:26
878cd52 to
3a6b43a
Compare
This was referenced Oct 28, 2026
myabc
force-pushed
the
feature/dream-955-table-tooltips
branch
from
October 29, 2026 00:22
3a6b43a to
071f328
Compare
myabc
commented
Oct 29, 2026
| const { link, tooltip } = mount(); | ||
| link.focus(); | ||
| await waitFor(() => expect(tooltip.matches(':popover-open')).toBe(true)); | ||
| document.dispatchEvent(new KeyboardEvent('keydown', { key: 'Escape', bubbles: true, cancelable: true })); |
myabc
force-pushed
the
feature/dream-955-table-tooltips
branch
from
October 29, 2026 01:09
071f328 to
5afc82a
Compare
myabc
force-pushed
the
feature/dream-955-table-tooltips
branch
from
October 29, 2026 01:40
5afc82a to
bfbb5c6
Compare
|
Warning Flaky specs
🤖 Ask Copilot to investigateCopy the prompt below into a new comment on this PR to delegate the investigation to GitHub Copilot. It will look into the flakiness and open a separate pull request with you as reviewer. |
myabc
force-pushed
the
feature/dream-955-table-tooltips
branch
from
October 29, 2026 02:57
bfbb5c6 to
d4ea73f
Compare
myabc
marked this pull request as ready for review
October 29, 2026 02:58
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
No active review issues remain for the keyboard-accessible tooltip changes.
No open issues 🎉
What changed in this PR
Makes work package table hints available to keyboard users through Primer tooltips, building on the row-header accessibility work in #26380.
Changes:
- Adds shared tooltip handling that distinguishes accessible labels from descriptions and guards against showing removed tooltips.
- Updates table actions, display fields, and principal links while removing redundant ID and name hints.
- Adds coverage for keyboard dismissal, focus preservation, rerendering, and existing navigation behavior.
| File | Description |
|---|---|
spec/support/pages/work_packages/work_packages_table.rb |
Finds focused controls by accessible name. |
spec/features/work_packages/table/semantic_id_navigation_follow_ups_spec.rb |
Uses accessible naming for details-link assertions. |
spec/features/work_packages/table/keyboard_selection_spec.rb |
Checks tooltip dismissal preserves focus and selection. |
spec/features/work_packages/table/cell_interaction_spec.rb |
Verifies focus enters the context menu. |
spec/features/work_packages/table/accessible_tooltips_spec.rb |
Covers tooltip semantics and keyboard and pointer interactions. |
spec/features/work_packages/display_fields/spent_time_display_spec.rb |
Tests labeled time logging and refreshed values. |
spec/features/work_packages/details/query_groups/relation_query_group_keyboard_spec.rb |
Covers unlink hints and replacement controls. |
frontend/src/app/shared/helpers/tooltip-helper.ts |
Adds shared tooltip creation and dismissal helpers. |
frontend/src/app/shared/helpers/tooltip-helper.spec.ts |
Tests tooltip semantics, interactions, and lifecycle handling. |
frontend/src/app/shared/components/principal/principal-renderer.service.ts |
Adds descriptive tooltips and removes redundant linked-name hints. |
frontend/src/app/shared/components/principal/principal-renderer.service.spec.ts |
Tests principal hint behavior and preserved hover-card attributes. |
frontend/src/app/shared/components/fields/display/field-types/wp-spent-time-display-field.module.ts |
Describes spent-time values and labels logging controls. |
frontend/src/app/shared/components/fields/display/field-types/wp-id-display-field.module.ts |
Appends the updated link-builder fragment. |
frontend/src/app/shared/components/fields/display/field-types/wp-id-display-field.module.spec.ts |
Verifies ID links have no redundant tooltip. |
frontend/src/app/shared/components/fields/display/field-types/work-display-field.module.ts |
Adds descriptive tooltips to derived work values. |
frontend/src/app/shared/components/fields/display/field-types/table-tooltip-display-fields.spec.ts |
Tests field descriptions, rerendering, routing, and time logging. |
frontend/src/app/shared/components/fields/display/field-types/linked-work-package-display-field.module.ts |
Appends linked work packages with their tooltip fragments. |
frontend/src/app/shared/components/fields/display/field-types/compound-progress-display-field.module.ts |
Describes derived progress and removes native container titles. |
frontend/src/app/features/work-packages/components/wp-table/table-actions/table-actions.service.ts |
Allows actions to return document fragments. |
frontend/src/app/features/work-packages/components/wp-table/table-actions/table-action.ts |
Extends the action contract to support fragments. |
frontend/src/app/features/work-packages/components/wp-table/table-actions/actions/unlink-table-action.ts |
Labels unlink controls through tooltips. |
frontend/src/app/features/work-packages/components/wp-table/table-actions/actions/details-table-action.ts |
Returns the details link with its tooltip. |
frontend/src/app/features/work-packages/components/wp-table/table-actions/actions/context-menu-table-action.ts |
Labels context-menu controls through tooltips. |
frontend/src/app/features/work-packages/components/wp-fast-table/handlers/context-menu/context-menu-entry.spec.ts |
Tests tooltip dismissal when opening the menu. |
frontend/src/app/features/work-packages/components/wp-fast-table/handlers/context-menu/context-menu-click-handler.ts |
Hides the control’s tooltip before opening the menu. |
frontend/src/app/features/work-packages/components/wp-fast-table/builders/ui-state-link-builder.ts |
Returns anchors with tooltip fragments and omits redundant hints. |
frontend/src/app/features/work-packages/components/wp-fast-table/builders/ui-state-link-builder.spec.ts |
Tests tooltip naming, descriptions, and preserved routing. |
frontend/src/app/features/work-packages/components/wp-fast-table/builders/table-action-renderer.ts |
Accepts fragment-based action output. |
frontend/src/app/features/work-packages/components/wp-fast-table/builders/table-action-renderer.spec.ts |
Tests repeated action tooltips and preserved unlink behavior. |
Review effort: Balanced
HDinger
approved these changes
Oct 29, 2026
myabc
force-pushed
the
feature/dream-955-table-tooltips
branch
from
October 29, 2026 14:39
d4ea73f to
269cde8
Compare
myabc
force-pushed
the
feature/dream-955-table-tooltips
branch
from
October 30, 2026 03:07
269cde8 to
b3ab9c7
Compare
myabc
force-pushed
the
feature/dream-955-table-tooltips
branch
3 times, most recently
from
October 30, 2026 11:54
ab6f019 to
93f3819
Compare
myabc
force-pushed
the
feature/dream-955-table-tooltips
branch
from
October 30, 2026 12:53
93f3819 to
d952c0c
Compare
myabc
force-pushed
the
feature/dream-955-table-tooltips
branch
from
October 30, 2026 21:58
d952c0c to
02bd372
Compare
|
Warning Flaky specs
🤖 Ask Copilot to investigateCopy the prompt below into a new comment on this PR to delegate the investigation to GitHub Copilot. It will look into the flakiness and open a separate pull request with you as reviewer. |
myabc
force-pushed
the
feature/dream-955-table-tooltips
branch
2 times, most recently
from
October 31, 2026 00:32
364d12e to
fd0bf41
Compare
myabc
force-pushed
the
feature/dream-955-table-tooltips
branch
from
November 2, 2026 15:18
fd0bf41 to
353a40d
Compare
Deploying openproject with ⚡ PullPreview
|
Base automatically changed from
feature/dream-945-row-headers
to
release/18.0
November 3, 2026 17:12
myabc
force-pushed
the
feature/dream-955-table-tooltips
branch
from
November 3, 2026 17:12
353a40d to
fbfb8e9
Compare
myabc
force-pushed
the
feature/dream-955-table-tooltips
branch
from
November 3, 2026 21:24
fbfb8e9 to
1dd91f4
Compare
Adds Primer tooltips to table actions, value links and principal names while preserving their actual anchors and row identities. Keeps visible text as the link name and supplies icon labels or additional descriptions. Suppresses redundant browser titles and guards pending native focus events after their owner is removed. Hides the context-menu button tooltip when the menu is requested, so the tooltip cannot swallow an Escape meant for the pending menu. Covers accessible names, navigation, async time-entry links and tooltip lifecycle with real-browser tests. https://community.openproject.org/wp/DREAM-955
Pins accessible names and descriptions in real work package tables while preserving navigation, selection and explicit destructive activation. Keeps keyboard acceptance aligned with tooltip-first Escape handling and the new computed names, including after embedded-table refreshes. https://community.openproject.org/wp/DREAM-955
myabc
force-pushed
the
feature/dream-955-table-tooltips
branch
from
November 3, 2026 23:49
1dd91f4 to
a56b423
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
This PR is stacked on #26380 (DREAM-945, row headers). Please review/merge that PR first.
Ticket
https://community.openproject.org/wp/DREAM-955
What are you trying to accomplish?
tl;dr for humans: Lets keyboard users read the same work package table hints as pointer users.
For example, focusing the details icon shows “Open details view.” A spent-time link keeps its visible value as its name and adds “Show spent time for this work package” as a description. Duplicate ID and person/group-name hints are removed.
Screenshots
What approach did you choose and why?
Creates native Primer tooltips alongside their controls so rows and fields own their lifetime, with a guard against opening a tooltip after removal. Applies this to table actions and display fields, and to shared principal links.
Hints for dev review
Tab to the details icon, then press Escape: the tooltip closes while focus and selection remain. Start with
tooltip-helper.tsandaccessible_tooltips_spec.rbfor the label/description behavior.AI involvement
Directed – I specified the requirements and AI implemented most of it; I validated via testing rather than a full line-by-line review.
Merge checklist