Skip to content

Conversation

manuhabitela
Copy link
Collaborator

@manuhabitela manuhabitela commented Jul 28, 2025

Context

Now that there is a high contrast theme, and most importantly, that keyboard shortcuts exist to escape the widget and navigate through the whole document page ; it feels like a good idea to expose that more in the UI.

Proposed solution

The idea is to have an "Accessibility" button directly available in the tools section of the left panel.

  • this button has a rather common icon for accessibility related things on the web ; currently borrowed from bootstrap icons as an example (I didn't get if an icon lib was already in use or if icons were homemade),
  • we directly show in the UI the keyboard shortcut triggering this button (F4 for now, but I need more testing on this). I feel this is important: since by default, we can't access this button by normal usage of the tab key when on a document page, visually showing the corresponding shortcut allows to trigger the button even if we don't know about the region switching shortcuts
  • when clicking the button, we see a modal, letting us quickly enabling the high contrast theme, and explaining us the region switching keyboard shortcuts exist

Has this been tested?

  • 👍 yes, I added tests to the test suite
  • 💭 no, because this PR is a draft and still needs work
  • 🙅 no, because this is not relevant here
  • 🙋 no, because I need help

Screenshots / Screencasts

a11ymodal.mp4

@manuhabitela
Copy link
Collaborator Author

manuhabitela commented Jul 28, 2025

## Review notes

This pull request needs things that are added in the ongoing PR #1667.

⚠️ As a result, only the latest commit of this PR is relevant here: all the other ones belong to the other PR. I can't create a PR to grist-core with a base branch located on my fork, that's why.

This is outdated info, see last comment for update

@manuhabitela manuhabitela requested a review from fflorent July 28, 2025 11:48
@manuhabitela manuhabitela moved this to Needs Internal Feedback in French administration Board Jul 28, 2025
@fflorent fflorent added the preview Launch preview deployment of this PR label Jul 29, 2025
Copy link
Contributor

Deployed commit 1e86fba67f05b8beef7fb484fe0bc5e622342e6b as https://grist-manuhabitela-grist-core-a11y-modal.fly.dev (until 2025-08-28T11:02:41.320Z)

Copy link
Contributor

Deployed commit 49cfda015babb2debeb529f4b1d192f19ecaadb4 as https://grist-manuhabitela-grist-core-a11y-modal.fly.dev (until 2025-08-29T11:53:28.577Z)

Copy link
Contributor

github-actions bot commented Aug 6, 2025

Deployed commit 402610f1a3192c49c9a04bcb99f5a6918f146d3e as https://grist-manuhabitela-grist-core-a11y-modal.fly.dev (until 2025-09-05T13:21:21.208Z)

@manuhabitela
Copy link
Collaborator Author

manuhabitela commented Aug 6, 2025

Update @fflorent: I changed my strategy on this to help on reviewing/merging this on its own. This is now based on the main branch and doesn't rely on any other things.

Copy link
Contributor

github-actions bot commented Aug 6, 2025

Deployed commit 37411c99ea8d07968fc1f59260fb95f6f89e5f1a as https://grist-manuhabitela-grist-core-a11y-modal.fly.dev (until 2025-09-05T15:00:59.847Z)

@manuhabitela
Copy link
Collaborator Author

manuhabitela commented Aug 12, 2025

I updated the branch:

  • I force the "switch to high contrast theme" button to be readable even on the light theme (which is the theme having contrast issues with the green color), as I feel it's important to have this specific button correctly visible whatever the context.
  • added tests

From my point of view this is ready to review @fflorent @hexaltation :)

Copy link
Contributor

Deployed commit b4ebd1cd4cf8129b8841ccde8166b53de4103ba9 as https://grist-manuhabitela-grist-core-a11y-modal.fly.dev (until 2025-09-11T12:48:51.684Z)

@manuhabitela
Copy link
Collaborator Author

manuhabitela commented Aug 12, 2025

I must admit at first glance I don't get why the LeftPanel test fails, I can't make it fail locally…

In the mean time if you have any idea @dsagal, I see it's a recent addition of yours (including some fixes on the RegionFocusSwitcher, sorry and thanks by the way 👀)

edit: I think I know the issue. I'll open a separate PR for the flaky test.

Copy link
Contributor

Deployed commit c230fa9446e354a587fc9d4dd82873de1dcb16bb as https://grist-manuhabitela-grist-core-a11y-modal.fly.dev (until 2025-09-11T14:05:19.354Z)

Copy link
Contributor

Deployed commit ab8a1be21e301ad668b2af15a42fe196362132e1 as https://grist-manuhabitela-grist-core-a11y-modal.fly.dev (until 2025-09-12T07:34:35.331Z)

Copy link
Collaborator

@hexaltation hexaltation left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks for the job

Copy link
Contributor

Deployed commit 533d26a8e5f2fbe3d6d3366317b813a5428f3622 as https://grist-manuhabitela-grist-core-a11y-modal.fly.dev (until 2025-09-18T12:26:48.496Z)

@manuhabitela
Copy link
Collaborator Author

If any gristlabsian is curious this is ready ;) @dsagal I remember talking about this feature with you. @georgegevoian

@manuhabitela manuhabitela moved this from Needs Internal Feedback to Needs feedback in French administration Board Aug 19, 2025
@georgegevoian georgegevoian self-requested a review August 19, 2025 18:06