Skip to content

Update accessibility criteria for Grapher#3854

Merged
benchristel merged 4 commits into
mainfrom
benc/accessible-grapher
Jul 2, 2026
Merged

Update accessibility criteria for Grapher#3854
benchristel merged 4 commits into
mainfrom
benc/accessible-grapher

Conversation

@benchristel

Copy link
Copy Markdown
Member

Summary:

The Grapher widget is now accessible if:

  • it has no background image, AND
  • it has a single available function type that is not quadratic

This is because we use the Interactive Graph UI components for Graphers that
aren't quadratic or choose-your-own-function. Graphers with background images
are not accessible because they don't have alt text.

Issue: https://khanacademy.atlassian.net/browse/LEMS-4289

Test plan:

Deploy. Graphers in the content editor should not display an accessibility
lint warning if they meet the criteria above.

@github-actions

github-actions Bot commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Size Change: +29 B (+0.01%)

Total Size: 517 kB

📦 View Changed
Filename Size Change
packages/perseus-core/dist/es/index.js 27.7 kB +29 B (+0.1%)
ℹ️ View Unchanged
Filename Size
packages/kas/dist/es/index.js 20.6 kB
packages/keypad-context/dist/es/index.js 1 kB
packages/kmath/dist/es/index.js 6.31 kB
packages/math-input/dist/es/index.js 98.5 kB
packages/math-input/dist/es/strings.js 1.61 kB
packages/perseus-core/dist/es/index.item-splitting.js 12.9 kB
packages/perseus-editor/dist/es/index.js 104 kB
packages/perseus-linter/dist/es/index.js 9.79 kB
packages/perseus-score/dist/es/index.js 9.86 kB
packages/perseus-utils/dist/es/index.js 403 B
packages/perseus/dist/es/index.js 204 kB
packages/perseus/dist/es/strings.js 12.4 kB
packages/pure-markdown/dist/es/index.js 1.39 kB
packages/simple-markdown/dist/es/index.js 6.71 kB

compressed-size-action

@github-actions

Copy link
Copy Markdown
Contributor

npm Snapshot: Published

Good news!! We've packaged up the latest commit from this PR (3262a1c) and published it to npm. You
can install it using the tag PR3854.

Example:

pnpm add @khanacademy/perseus@PR3854

If you are working in Khan Academy's frontend, you can run the below command.

./dev/tools/bump_perseus_version.ts -t PR3854

If you are working in Khan Academy's webapp, you can run the below command.

./dev/tools/bump_perseus_version.js -t PR3854

@catandthemachines catandthemachines left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks great! Just one suggestion.

availableTypes: ["linear"],
});

it("returns true when the graph is accessible", () => {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Can you state what makes grapher accessible in this case? It'll help differentiate it from the other true case below.

@benchristel benchristel force-pushed the benc/accessible-grapher branch from 6ebdeb5 to e91792d Compare July 2, 2026 21:59
the count of lint issues changed because Grapher is now accessible.
…marked **accessible** if it has a single available function type that is not `quadratic`, and no background image.
@benchristel benchristel merged commit 4306c90 into main Jul 2, 2026
13 of 14 checks passed
@benchristel benchristel deleted the benc/accessible-grapher branch July 2, 2026 23:29
benchristel pushed a commit that referenced this pull request Jul 6, 2026
This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.


# Releases
## @khanacademy/perseus-core@30.1.0

### Minor Changes

-   [#3854](#3854) [`4306c90`](4306c90) Thanks [@benchristel](https://github.com/benchristel)! - The Grapher widget is now marked **accessible** if it has a single available function type that is not `quadratic`, and no background image.

### Patch Changes

-   [#3859](#3859) [`eec5371`](eec5371) Thanks [@benchristel](https://github.com/benchristel)! - The now-unused feature flag "input-number-to-numeric-input" has been removed.

-   [#3855](#3855) [`8d25dbd`](8d25dbd) Thanks [@benchristel](https://github.com/benchristel)! - The `grapher-to-interactive-graph` feature flag has been removed. Graphers now render as Interactive Graphs if they have a single available function type that is not `quadratic`.

## @khanacademy/keypad-context@3.2.71

### Patch Changes

-   Updated dependencies \[[`eec5371`](eec5371), [`4306c90`](4306c90), [`8d25dbd`](8d25dbd)]:
    -   @khanacademy/perseus-core@30.1.0

## @khanacademy/kmath@2.4.30

### Patch Changes

-   Updated dependencies \[[`eec5371`](eec5371), [`4306c90`](4306c90), [`8d25dbd`](8d25dbd)]:
    -   @khanacademy/perseus-core@30.1.0

## @khanacademy/math-input@26.4.44

### Patch Changes

-   Updated dependencies \[[`eec5371`](eec5371), [`4306c90`](4306c90), [`8d25dbd`](8d25dbd)]:
    -   @khanacademy/perseus-core@30.1.0
    -   @khanacademy/keypad-context@3.2.71

## @khanacademy/perseus@79.1.2

### Patch Changes

-   [#3847](#3847) [`855f36d`](855f36d) Thanks [@Evelas78](https://github.com/Evelas78)! - Regression tests for sorter

-   [#3802](#3802) [`45feb6d`](45feb6d) Thanks [@Evelas78](https://github.com/Evelas78)! - Added multiple regression tests for the radio widget

-   [#3812](#3812) [`53b4221`](53b4221) Thanks [@nishasy](https://github.com/nishasy)! - [ColorSync][numeric input] Add more regression stories for the Numeric Input widget

-   [#3859](#3859) [`eec5371`](eec5371) Thanks [@benchristel](https://github.com/benchristel)! - The now-unused feature flag "input-number-to-numeric-input" has been removed.

-   [#3855](#3855) [`8d25dbd`](8d25dbd) Thanks [@benchristel](https://github.com/benchristel)! - The `grapher-to-interactive-graph` feature flag has been removed. Graphers now render as Interactive Graphs if they have a single available function type that is not `quadratic`.

-   [#3835](#3835) [`e5c4c92`](e5c4c92) Thanks [@jandrade](https://github.com/jandrade)! - Migrate Wonder Blocks font sizing from the deprecated `font.size` / `--wb-font-size` tokens to the newer `font.body.size` / `--wb-font-body-size` tokens. Sizes that have no `body` equivalent (`large`) now use the matching `font.heading.size` token.

-   Updated dependencies \[[`eec5371`](eec5371), [`4306c90`](4306c90), [`8d25dbd`](8d25dbd)]:
    -   @khanacademy/perseus-core@30.1.0
    -   @khanacademy/keypad-context@3.2.71
    -   @khanacademy/kmath@2.4.30
    -   @khanacademy/math-input@26.4.44
    -   @khanacademy/perseus-linter@5.1.11
    -   @khanacademy/perseus-score@8.12.3

## @khanacademy/perseus-editor@34.1.2

### Patch Changes

-   [#3832](#3832) [`4f11360`](4f11360) Thanks [@nishasy](https://github.com/nishasy)! - Put the left and right sides of the editor in separate scroll areas

-   [#3828](#3828) [`ffc1dcd`](ffc1dcd) Thanks [@catandthemachines](https://github.com/catandthemachines)! - [Interactive Graph][editor] Fix invariant error in interactve graph editor.

-   [#3835](#3835) [`e5c4c92`](e5c4c92) Thanks [@jandrade](https://github.com/jandrade)! - Migrate Wonder Blocks font sizing from the deprecated `font.size` / `--wb-font-size` tokens to the newer `font.body.size` / `--wb-font-body-size` tokens. Sizes that have no `body` equivalent (`large`) now use the matching `font.heading.size` token.

-   Updated dependencies \[[`855f36d`](855f36d), [`45feb6d`](45feb6d), [`53b4221`](53b4221), [`eec5371`](eec5371), [`4306c90`](4306c90), [`8d25dbd`](8d25dbd), [`e5c4c92`](e5c4c92)]:
    -   @khanacademy/perseus@79.1.2
    -   @khanacademy/perseus-core@30.1.0
    -   @khanacademy/keypad-context@3.2.71
    -   @khanacademy/kmath@2.4.30
    -   @khanacademy/math-input@26.4.44
    -   @khanacademy/perseus-linter@5.1.11

## @khanacademy/perseus-linter@5.1.11

### Patch Changes

-   Updated dependencies \[[`eec5371`](eec5371), [`4306c90`](4306c90), [`8d25dbd`](8d25dbd)]:
    -   @khanacademy/perseus-core@30.1.0
    -   @khanacademy/kmath@2.4.30

## @khanacademy/perseus-score@8.12.3

### Patch Changes

-   Updated dependencies \[[`eec5371`](eec5371), [`4306c90`](4306c90), [`8d25dbd`](8d25dbd)]:
    -   @khanacademy/perseus-core@30.1.0
    -   @khanacademy/kmath@2.4.30

Author: khan-actions-bot

Reviewers: benchristel

Required Reviewers:

Approved By: benchristel

Checks: ✅ 11 checks were successful

Pull Request URL: #3861
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.

2 participants