Skip to content

Release 0.78.2 - #3877

Merged
odlbot merged 5 commits into
releasefrom
release-candidate
Sep 1, 2026
Merged

odlbot merged 5 commits into
releasefrom
release-candidate

Conversation

@odlbot

@odlbot odlbot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Dan Subak

Tobias Macey

blarghmatey and others added 5 commits August 31, 2026 18:14
…#3868)

* Clear the a11y findings eslint-plugin-styled-components-a11y 2.2 adds

Two are real: the contract admin table had an unlabelled columnheader,
and the user menu declared role="button" on a styled.button.

The other seven are deliberate patterns the rules cannot see through, so
they get a scoped disable with the reason:

- Card and the video-shorts player forward a body click to a control the
  user can already reach by keyboard (the card's own anchor, the visible
  PlayPauseButton). A keydown handler would duplicate it.
- The video-shorts slide is the APG carousel pattern: role="group" with
  a roving tabindex and Enter to toggle playback.
- NavDrawer is a persistent Drawer, so it is not a MUI Modal and gets no
  built-in Escape handling; the onKeyUp is the only keyboard exit.
- The suppressed-value marker is focusable so its tooltip is reachable
  without a pointer; there is no action to justify a button.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FyJ72HRTyQf6jVYmw3GZSt

* Correct the NavDrawer suppression rationale

The comment claimed the Escape listener was the only keyboard way out of
the drawer. It is not: the Close Navigation button at NavDrawer.tsx:204
is the primary exit, and this listener adds the Escape shortcut on top of
it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FyJ72HRTyQf6jVYmw3GZSt

* Narrow the Card suppression rationale to its actual precondition

The comments claimed the container click always forwards to the card's
anchor. It only does when forwardClicksToLink is set, and that defaults
to false (Card.tsx:321) -- in the other mode handleClick is the raw
onClick and the container is pointer-only.

Every caller today pairs the two (BaseLearningResourceCard), but nothing
enforces it and Card is an ol-components export. Comment says so now;
#3874 tracks making it impossible to get wrong.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FyJ72HRTyQf6jVYmw3GZSt

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
actions-static-analysis.yml was already on v7.0.1 while the other three
workflows sat on v6.0.1, so Renovate had two pins to chase for one
action. Neither v7 breaking change applies here: the fork-checkout block
only fires on pull_request_target and workflow_run, and none of these
workflows use either trigger.


Claude-Session: https://claude.ai/code/session_01FyJ72HRTyQf6jVYmw3GZSt

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
@odlbot
odlbot requested a review from a team as a code owner September 1, 2026 14:23
@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown

OpenAPI Changes

No changes detected

View full changelog

Unexpected changes? Ensure your branch is up-to-date with main (consider rebasing).

@odlbot
odlbot merged commit 9e9e45c into release Sep 1, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants