-
-
Notifications
You must be signed in to change notification settings - Fork 3.5k
Merge Accessibility Add-On into p5.js #4703
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
Merged
Merged
Changes from all commits
Commits
Show all changes
74 commits
Select commit
Hold shift + click to select a range
d46134a
create basic textOutput
8be1f90
include color_namer from p5.accessibility
3a379af
reduce color_name
39ebabc
added description of elements
e29343c
add square
1f89f51
add fill, rect, point, line
29f16d0
add _getLineLenght
938c0a4
improve text description
c735879
support triangle
9d87a30
rename html elements
bcf5aa6
add html structure and table with element details
72c8d24
add table output
3489ea4
add table map
dc16e54
add comments, move create html to outpus, add links to grid elements.
9b6fc9b
add links to text output shapes
89a54a7
remove h1s
ca2b099
rename table output to grid output
c833d5e
get centroid of triangle
5686c54
calculate centroid of quads
5c91d36
fix grid mapping
3804540
use plural for shape counters
2159ac2
fix ingredients and add function description for reference
b746af8
fix Math and append issues + add docs
9582177
add comments to functions
622c8f0
add web accessibility to issue templates
66da3c6
validate parameters
ce8570f
comment out comparison of ingredients
4336fb2
quick fixes
252503c
update at the end of setup and draw
7dc0938
make helper functions local
256933f
use template literals and make functions local
0245d68
update html only when content is different
c400ac7
add examples
0a68f6e
bring back get line length function
2e9de5d
use dummy dom
033b1c7
fix use of dummy dom
ef8df67
use dist()
31b423f
local functions in color_namer.js
714b5a0
use fallback and label
f5a6fcd
fully support instance mode
c7dca37
tests prototype
387de01
add dummy and ingredients to instance
843511f
combine createOutputl and createLabel function
3d824f5
combine _createTextOutput() and _createGridOutput() with _createOutput()
7a0243b
merge update output functions
10a0e80
add unit tests
ae4cb09
fixes typos
3b872f8
Update spec.js
lm-n 6bf2972
Merge pull request #1 from processing/main
lm-n 2fd9744
use this.dummyDOM in describe() and fix tests
f605391
integrate describe functions and output functions
a8d69df
fixes errors in describe and describe Element
f8f074f
added comments
ba951e8
modify readme and document accessibility in contributor docs
9ad5e0b
updated web_accessibility.md
2aef015
fix grid output for line
c78f0f7
document accessible outputs in contributor docs
6bae71c
add describe and describeElement to contributor docs
0885478
update web accessibility links
dd94fb0
delete to-do list comment
99401c2
update reference
0eed3bc
store html elements
1bcbf7a
update contributor docs and reference
f909628
rename variables in color_namer.js
eb56f3a
rename element ids
291691a
add functions to prototype and fix returning dummyDOM
51f7dba
comments on colorNamer and describe
86a54fc
Create luismn_gsoc_2020.md
lm-n f67786f
add 2020 GSoC wrap-up
lm-n 1727734
update links in web accessibility docs
lm-n d9d9ab0
Merge pull request #2 from lm-n/gsocWorkProduct
lm-n 9e6d83a
fix typos in contributor docs
lm-n 5158d3f
change order of comments to match indentation
lm-n f9e7deb
fix linting issues
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
# p5.js accessibility and canvas descriptions | ||
GSoC 2020 | [Luis Morales-Navarro](https://luismn.com/) | ||
|
||
### Overview: | ||
During this Google Summer of Code, I worked with [Kate Hollenbach](https://github.com/kjhollen) | ||
to improve the accessibility features of p5.js. We focused on merging the | ||
text output and table output functionalities of [p5.accessibility](https://github.com/processing/p5.accessibility) | ||
into p5.js and created functions that support p5.js users in writing their own screen reader accessible canvas descriptions. | ||
|
||
### Background: | ||
#### p5.js and Accessibility: from an editor feature to an add-on to the library | ||
The work done during this summer is part of the project's [efforts to make p5.js more accessible for persons with dissabilities](https://contributors-zine.p5js.org/#reflection-claire-kearney-volpe). | ||
Early work by Claire Kearney-Volpe, Taeyoon Choi, and Atul Varma identified the need to make p5.js sketches | ||
and the canvas accessible to screen readers and people who are blind. I met Claire in late 2016 when | ||
they were working with Mathura Govindarajan to add accessibility features to the p5.js editor. I joined them | ||
and together with the support of dedicated contributors and advisors (including Cassie Tarajakan, Lauren McCarthy, | ||
Josh Mielle, Sina Bahram, and Chancey Fleet) we implemented three accessible canvas outputs (a text output, a grid | ||
output and a sound output) on the alpha editor. | ||
|
||
Later on, through a 2018 Processing Foundation Fellowship Claire, Mathura and I developed p5.accessibility.js a p5.js add-on. | ||
p5.accessibility.js (developed with contributions from Antonio Guimaraes, Elizabeth G Betts, Mithru Vigneshwara, and Yossi Spira) | ||
helped us bring the work we had done with accessible outputs in the editor to any p5.js sketch that included the add-on. | ||
However, the add-on was still an add-on that required users to include an extra file and edit their html. | ||
|
||
At the 2019 p5.js Contributors Conference, as a community, we reinforced the project's commitment to access and inclussion. | ||
Together with Claire, Sina, Lauren, Kate, Olivia McKayla Ross and Evelyn Masso we outlined the pathway forward. | ||
Among short-term actions, we identified the need for functions that allow users to write their own descriptions | ||
and the importance of merging the add-on into the p5.js library. | ||
|
||
### Contributions: | ||
During the course of Summer of Code, my work focused on creating library generated screen reader accessible outputs | ||
for basic shapes on the canvas and functions to support user-generated screen reader accessible descriptions of canvas content. | ||
I worked on the following PRs: | ||
- [Add describe() and describeElement() #4654](https://github.com/processing/p5.js/pull/4654): This PR adds the functions describe() and describeElement(), tests for these functions, documentation and examples. | ||
- [Merge Accessibility Add-On into p5.js #4703](https://github.com/processing/p5.js/pull/4703): This PR adds the functions textOutput() and gridOutput(), helper functions to create and update, the outputs and tests, documentation and examples. At first the plan was to update the add-on and prepare it for merging it with p5.js in the near future. However, we realized it was more time effective to recreate the functionality of the text output and grid output in p5.js than upgrading the add-on which relied on ["monkey patching," entities and interceptors](https://medium.com/processing-foundation/making-p5-js-accessible-e2ce366e05a0). Now, the outputs are fully integrated to the library. | ||
|
||
More information on how these accessibility features work is available in the [web accessibility contributor docs](https://github.com/processing/p5.js/blob/main/contributor_docs/web_accessibility.md). | ||
|
||
### Future | ||
- There is a lot of work that can be done to improve the accessibility of p5.js sketches. In the [Web accessibility next steps conversation #4721 Issue](https://github.com/processing/p5.js/issues/4721) we have outlined some ideas and questions. | ||
- The work done during the summer focused on code and code issues but it is important to iteratively test these features with members of the community, particularly novices and learners who are blind. It is also important to create more resources for learning and teaching that support accessibility. | ||
- Immediate next steps include: | ||
- A tutorial on how to describe things on the canvas. | ||
- Changes in the way screen-reader descriptions are created in the reference. Using the describe() function instead of relying on @alt | ||
- Maybe adding describe() to the templates on the website and editor | ||
- Upgrading the tutorial on using p5 with a screen reader | ||
- Changing the way the accessibility settings work on the editor | ||
|
||
### Acknowledgements | ||
I am grateful to Kate Hollenbach for their guidance, feedback and assistance, to Lauren McCarthy for their feedback and to Claire Kearney-Volpe for helping me come up with this project. Thanks to Sina Bahram for their input —our conversations at 2019 p5.js Contributors Conference inspired the describe() and describeElement() functions—, and to Akshay Padte for their advice on unit testing. This GSoC project would not have been possible without Chancey Fleet and Claire (who started thinking of ways to make p5.js sketches screen reader accessible in late 2015), the work of Mathura Govindarajan, and of many other contributors and supporters in the p5.js community. | ||
|
||
:heart: | ||
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.