## mui/material-ui — v9.3.1…v9.4.0

_85 commits._

### Features
- **[material-ui] Add `theme.focusVisible` opt-in keyboard focus ring (#48743)** (ba231e3)
- **[code-infra] Point the support validator link at frontend-public (#49041)** (555828d)
- **[tooltip] Improve support for disabled button triggers (#48622)** (3303c0d)

### Fixes
- **[code-infra] Fix new image loading flake after font loading changes (#49042)** (176f593)
- **[styled-engine-sc] Fix types for components extended with styled (#45988)** (b53a682)
- **[website] Fix /careers page when there are new open roles (#49021)** (862678e)
- **[code-infra] Fix team sync review requests (#48914)** (76e4470)
- **[test] Add an `assertions` mode to the axe regression harness (#48915)** (f76d14a)
- **[utils] Fix resolveProps to correctly merge slotProps defined as functions (#48955)** (af37973)
- **[website] Fix focus-visible style non-text contrast failure for keyboard accessibility on banner announcement link (#48962)** (2a79a2c)
- **[docs][Table] Fix wrong number of rows reported to screen readers (#47653)** (b5341ba)
- **[test] Fix typo 'overriden' -> 'overridden' in Alert test comment (#48987)** (81b2227)
- **[website] Fix WCAG criteria for code copy button (#48963)** (48c6663)
- **[website] Fix overline duplicating the h2 heading (#48953)** (65d7544)
- **[docs] Fix broken links reported by Ahrefs (#48949)** (d514a95)
- **[test] Fail the regression run when a webfont does not load (#48948)** (29ca3b0)

### Backend
- **[release] v9.4.0 (#49046)** (809a771)
- **Bump MUI infra packages (#49044)** (6bc2432)
- **[docs] Use relative link for LICENSE in README (#49040)** (c84eaf5)
- **[website] Normalize job template (#49022)** (f3710e9)
- **[test] Skip the CrudDashboard VRT on React 18 (#49027)** (6ca87e0)
- **[core-docs] Remove the `globalSelector` stylis middleware (#49029)** (72bebce)
- **[code-infra] Import the test globals from vitest (#49033)** (3f8d682)
- **[test] Automate the CSS-dependent WCAG criteria (#48936)** (d49510d)
- **[docs][table] Reference DataGrid link in the row header section (#48988)** (8b3faa3)
- **[code-infra] Use ESM current directory syntax for Vitest config (#49032)** (4de09bd)
- **[code-infra] Update CircleCI orb (#49030)** (c8698d6)
- **[website] Sync about page team members (#49023)** (c49e09e)
- **[core] Use @typescript/typescript6 for the docs tooling (#49025)** (145853f)
- **[test] Use the shared loadFonts from @mui/internal-test-utils (#49007)** (c81d752)
- **Bump @tanstack/react-virtual to ^3.14.10 (#49010)** (cf82ff3)
- **Bump code-infra:devDependencies (#49014)** (daa0531)
- **Bump es-toolkit to ^1.51.0 (#49015)** (0f03dad)
- **Bump lerna to 10.0.1 (#49013)** (f4358d4)
- **Bump vale-cli/vale to 3.18.0 (#49017)** (0523825)
- **Bump postcss-import to ^17.0.0 (#49019)** (8fd452e)
- **Bump @netlify/functions to ^6.0.0 (#49018)** (1cbd185)
- **Bump pnpm to 11.22.0 (#49016)** (6434537)
- **Bump code-infra:patchUpdates (#49011)** (9de5042)
- **Bump GitHub Actions (#49012)** (1501125)
- **Bump code-infra-orb digest to 487b5aa (#49009)** (4abf641)
- **Pin @vitest/eslint-plugin to 1.6.27 (#49008)** (90df73c)
- **[docs][templates] Remove focusable links from hidden carousel slides (#49003)** (4597baf)
- **Bump MUI X to 9.12.0 (#49006)** (a4de2c5)
- **Bump MUI infra packages (#49005)** (081eb97)
- **Bump nextjs monorepo to 16.3.1 (#48978)** (abc78a7)
- **Bump MUI infra packages (#48998)** (108dd90)
- **[docs] Bump @docsearch/react to ^4.7.0 (#48886)** (d818ecb)
- **[test] Use the Vitest global expect instead of importing chai (#48996)** (06b5c70)
- **[test] Replace webfontloader with the CSS Font Loading API (#48995)** (931e620)
- **Bump supports-color to 11.0.0 (#48985)** (ff7ddde)
- **Bump MUI infra packages (#48994)** (e51e961)
- **[ButtonGroup] Prevent sticky hover border on touch devices (#48993)** (7cb351c)
- **Bump MUI infra packages (#48668)** (aa2812e)
- **Bump react-intersection-observer to ^11.0.0 (#48984)** (0e0c935)
- **[website] Close the PMM role (#48991)** (c1438e1)
- **Bump code-infra:devDependencies (#48976)** (caa6d87)
- **[docs][table] Use and document the row header cells (#48965)** (c8be538)
- **[docs][tabs] Make tab panel focusable and show keep mounted examples (#48939)** (410406a)
- **Bump @base-ui/react to ^1.7.0 (#48974)** (248c8ad)
- **Bump vale-cli/vale-action action to v3.0.0 (#48986)** (e4e48ee)
- **Bump pnpm to 11.21.0 (#48979)** (ea15ad0)
- **Bump recast to ^0.24.0 (#48981)** (0c8e519)
- **Bump postcss-import to ^16.2.0 (#48980)** (f22d140)
- **Bump markdown-to-jsx to ^9.10.2 (#48977)** (92892e1)
- **Bump @types/semver to 7.8.0 (#48975)** (430b161)
- **Bump react monorepo (#48973)** (9d72af3)
- **Bump GitHub Actions (#48972)** (5b5e42a)
- **Bump eslint (#48971)** (fc74e87)
- **[utils][docs] Replace deprecated `clip` CSS property with `clip-path` (#48966)** (0752d4e)
- **Bump code-infra:patchUpdates (#48970)** (6c65829)
- **Bump babel monorepo to ^7.29.8 (#48969)** (ece9eee)
- **[docs][autocomplete] Remove the "aria-owns" reference (#48958)** (d9777c3)
- **Bump lerna to 10.0.0 (#48904)** (bdc96df)
- **[test][tooltip] Keep the disabled trigger away from the real pointer (#48947)** (3c2c353)
- **[l10n] Complete Traditional Chinese localization (#48946)** (e6f58f6)
- **[docs] Move focus to the main content with the skip link (#48944)** (f22c95a)
- **Bump MUI X (#48937)** (db27a77)
- **[docs] Manage focus on Open in Chat button click (#48942)** (9adf284)
- **[menulist] Preserve custom list padding when adjusting for the scrollbar (#48707)** (44010d6)
- **Bump jsdom to 30.0.1 (#48903)** (b5e13ac)
- **Bump node (#48896)** (f191551)
- **Bump playwright monorepo (#48899)** (81e9406)
- **[pagination] Manage focus whenever first / last / next / previous buttons become disabled (#48877)** (fc35888)
- **Bump code-infra:patchUpdates (#48892)** (6688a78)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/mui/material-ui?utm_source=github-action)._