Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Interactive Graph + Editor] Add aria label and description to entire interactive graph and its UI to the editor #1568

Merged
merged 19 commits into from
Sep 6, 2024

Conversation

nishasy
Copy link
Contributor

@nishasy nishasy commented Aug 28, 2024

Summary:

  • Add fullGraphAriaLabel and fullGraphAriaDescription fields to interactive graph.
  • Hook up the graph so that if the fullGraphAriaLabel and/or fullGraphAriaDescription fields are present, then the graph has the respective aria-label and aria-describedby properties.
  • Add the UI to the interactive graph editor that allows the content author to add a title (label) and description to the graph.

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

Test plan:

yarn jest packages/perseus-editor/src/components/__tests__/interactive-graph-description.test.tsx
yarn jest packages/perseus-editor/src/widgets/__tests__/interactive-graph-editor.test.tsx
yarn jest packages/perseus/src/widgets/interactive-graphs/interactive-graph.test.tsx

Storybook

Demo:

Screen.Recording.2024-09-05.at.5.54.30.PM.mov

NOTE! The janky textarea will be replaced with a Wonder Blocks TextArea soon.

image

@nishasy nishasy self-assigned this Aug 28, 2024
Copy link
Contributor

github-actions bot commented Aug 28, 2024

Size Change: +568 B (+0.07%)

Total Size: 859 kB

Filename Size Change
packages/perseus-editor/dist/es/index.js 275 kB +419 B (+0.15%)
packages/perseus/dist/es/index.js 417 kB +149 B (+0.04%)
ℹ️ View Unchanged
Filename Size
packages/kas/dist/es/index.js 38.3 kB
packages/keypad-context/dist/es/index.js 760 B
packages/kmath/dist/es/index.js 4.27 kB
packages/math-input/dist/es/index.js 78 kB
packages/math-input/dist/es/strings.js 1.79 kB
packages/perseus-core/dist/es/index.js 1.48 kB
packages/perseus-linter/dist/es/index.js 22.2 kB
packages/perseus/dist/es/strings.js 3.36 kB
packages/pure-markdown/dist/es/index.js 3.66 kB
packages/simple-markdown/dist/es/index.js 12.4 kB

compressed-size-action

Copy link

codecov bot commented Aug 28, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 70.98%. Comparing base (6c4e9e1) to head (5456ccb).
Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1568      +/-   ##
==========================================
+ Coverage   70.46%   70.98%   +0.51%     
==========================================
  Files         546      572      +26     
  Lines      106885   111539    +4654     
  Branches     5533    11930    +6397     
==========================================
+ Hits        75319    79176    +3857     
- Misses      31450    32363     +913     
+ Partials      116        0     -116     

Impacted file tree graph

see 1118 files with indirect coverage changes


Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 6c4e9e1...5456ccb. Read the comment docs.

Copy link
Contributor

github-actions bot commented Sep 5, 2024

npm Snapshot: Published

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

Example:

yarn add @khanacademy/perseus@PR1568

If you are working in Khan Academy's webapp, you can run:

./dev/tools/bump_perseus_version.sh -t PR1568

@nishasy nishasy changed the title [WIP: DO NO MERGE] Add aria label and description to entire interactive graph [Interactive Graph + Editor] Add aria label and description to entire interactive graph and its UI to the editor Sep 6, 2024
@nishasy nishasy marked this pull request as ready for review September 6, 2024 01:09
@khan-actions-bot
Copy link
Contributor

Gerald

Required Reviewers
  • @Khan/perseus for changes to .changeset/new-pigs-begin.md, packages/perseus/src/perseus-types.ts, packages/perseus-editor/src/__stories__/interactive-graph-editor.stories.tsx, packages/perseus-editor/src/components/interactive-graph-description.tsx, packages/perseus/src/widgets/interactive-graphs/interactive-graph-question-builder.ts, packages/perseus/src/widgets/interactive-graphs/interactive-graph.test.tsx, packages/perseus/src/widgets/interactive-graphs/interactive-graph.testdata.ts, packages/perseus/src/widgets/interactive-graphs/mafs-graph.tsx, packages/perseus/src/widgets/interactive-graphs/stateful-mafs-graph.tsx, packages/perseus-editor/src/components/__tests__/interactive-graph-description.test.tsx, packages/perseus-editor/src/widgets/__tests__/interactive-graph-editor.test.tsx, packages/perseus-editor/src/widgets/interactive-graph-editor/interactive-graph-editor.tsx

Don't want to be involved in this pull request? Comment #removeme and we won't notify you of further changes.

Copy link
Member

@benchristel benchristel left a comment

Choose a reason for hiding this comment

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

The code looks good! I have a design question: what's an example of an aria-label content creators might set on a graph? It seems like the description field is the most important one. Could the label always be set to something generic like "graph"? I worry that, in the long run, content creators won't understand the distinction between these fields or how to use them effectively.

I imagine my question is already answered somewhere, so please link me to a document or slack thread if there is one.

@nishasy
Copy link
Contributor Author

nishasy commented Sep 6, 2024

@benchristel I started a conversation in Slack around your question!

It seems like we'd keep both the title and the description regardless, so I'm going to land this. Thank you!

@nishasy nishasy merged commit eddcb94 into main Sep 6, 2024
23 of 30 checks passed
@nishasy nishasy deleted the whole-graph-alt-text branch September 6, 2024 21:09
mark-fitzgerald pushed a commit that referenced this pull request Sep 10, 2024
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/[email protected]

### Major Changes

-   [#1591](#1591) [`05d048026`](05d0480) Thanks [@handeyeco](https://github.com/handeyeco)! - Move interaction-editor sub-components into perseus-editor

### Minor Changes

-   [#1568](#1568) [`eddcb9417`](eddcb94) Thanks [@nishasy](https://github.com/nishasy)! - [Interactive Graph + Editor] Add a full graph aria-label and aria-description/describedby to interactive graphs, as well as the UI for content authors to add this in the interactive graph editor

### Patch Changes

-   [#1540](#1540) [`08068dc71`](08068dc) Thanks [@mark-fitzgerald](https://github.com/mark-fitzgerald)! - Resolve improperly scaled text/labels in Graphie images when viewed in mobile (constrained viewports)


-   [#1592](#1592) [`d88b0ffdf`](d88b0ff) Thanks [@benchristel](https://github.com/benchristel)! - Internal: Move tests, test data, and Storybook stories for the Interactive Graph widget to the directory specific to that widget.


-   [#1594](#1594) [`435f3f6d8`](435f3f6) Thanks [@benchristel](https://github.com/benchristel)! - Internal: Remove Storybook stories that generate random widgets


-   [#1599](#1599) [`71715afd2`](71715af) Thanks [@benchristel](https://github.com/benchristel)! - Internal: improve type safety of interactive graph editor


-   [#1590](#1590) [`6c4e9e154`](6c4e9e1) Thanks [@benchristel](https://github.com/benchristel)! - Internal: Move InteractiveGraphEditor to its own directory

## @khanacademy/[email protected]

### Minor Changes

-   [#1600](#1600) [`bdb382fda`](bdb382f) Thanks [@mark-fitzgerald](https://github.com/mark-fitzgerald)! - Interactive Graph - Add example functions for copy/paste to locked functions settings


-   [#1568](#1568) [`eddcb9417`](eddcb94) Thanks [@nishasy](https://github.com/nishasy)! - [Interactive Graph + Editor] Add a full graph aria-label and aria-description/describedby to interactive graphs, as well as the UI for content authors to add this in the interactive graph editor

### Patch Changes

-   [#1592](#1592) [`d88b0ffdf`](d88b0ff) Thanks [@benchristel](https://github.com/benchristel)! - Internal: Move tests, test data, and Storybook stories for the Interactive Graph widget to the directory specific to that widget.


-   [#1591](#1591) [`05d048026`](05d0480) Thanks [@handeyeco](https://github.com/handeyeco)! - Move interaction-editor sub-components into perseus-editor


-   [#1594](#1594) [`435f3f6d8`](435f3f6) Thanks [@benchristel](https://github.com/benchristel)! - Internal: Remove Storybook stories that generate random widgets


-   [#1599](#1599) [`71715afd2`](71715af) Thanks [@benchristel](https://github.com/benchristel)! - Internal: improve type safety of interactive graph editor


-   [#1590](#1590) [`6c4e9e154`](6c4e9e1) Thanks [@benchristel](https://github.com/benchristel)! - Internal: Move InteractiveGraphEditor to its own directory

-   Updated dependencies \[[`08068dc71`](08068dc), [`d88b0ffdf`](d88b0ff), [`eddcb9417`](eddcb94), [`05d048026`](05d0480), [`435f3f6d8`](435f3f6), [`71715afd2`](71715af), [`6c4e9e154`](6c4e9e1)]:
    -   @khanacademy/[email protected]

## @khanacademy/[email protected]

### Patch Changes

-   [#1592](#1592) [`d88b0ffdf`](d88b0ff) Thanks [@benchristel](https://github.com/benchristel)! - Internal: Move tests, test data, and Storybook stories for the Interactive Graph widget to the directory specific to that widget.


-   [#1594](#1594) [`435f3f6d8`](435f3f6) Thanks [@benchristel](https://github.com/benchristel)! - Internal: Remove Storybook stories that generate random widgets

Author: khan-actions-bot

Reviewers: mark-fitzgerald

Required Reviewers:

Approved By: mark-fitzgerald

Checks: ❌ codecov/project, ✅ codecov/patch, ✅ Upload Coverage (ubuntu-latest, 20.x), ⏭️  Publish npm snapshot, ✅ Check builds for changes in size (ubuntu-latest, 20.x), ✅ Lint, Typecheck, Format, and Test (ubuntu-latest, 20.x), ✅ Jest Coverage (ubuntu-latest, 20.x), ✅ Cypress (ubuntu-latest, 20.x), ✅ Check for .changeset entries for all changed files (ubuntu-latest, 20.x), ✅ gerald

Pull Request URL: #1597
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants