processing / processing/p5.js

[p5.js 2.0 RFC Proposal]: Add a way to simulate color blindness

Open
#6,775 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Area:Accessibility Area:Color p5.js 2.0+ RFC
Dominant language
JavaScript
Stars
24k
Forks
3.8k
Avg merge
3d 16h
Merged PRs (30d)
25

Description

Increasing access

A simple tool for simulating color blindness will make it easier for people to ensure their sketches accessible to people with color blindness.

Which types of changes would be made?
  • Breaking change (Add-on libraries or sketches will work differently even if their code stays the same.)
  • Systemic change (Many features or contributor workflows will be affected.)
  • Overdue change (Modifications will be made that have been desirable for a long time.)
  • Unsure (The community can help to determine the type of change.)
Most appropriate sub-area of p5.js?
  • Accessibility
  • Color
  • Core/Environment/Rendering
  • Data
  • DOM
  • Events
  • Image
  • IO
  • Math
  • Typography
  • Utilities
  • WebGL
  • Build process
  • Unit testing
  • Internationalization
  • Friendly errors
  • Other (specify if possible)
What's the problem?

There's no easy way for people to ensure their sketches are accessible to people with color blindness. Doing so requires research and third-party software such as Color Oracle.

What's the solution?

I propose adding ways to simulate color blindness and to help coders adjust colors so that their canvases are more accessible. These tools should be available in p5.js by default. Doing so would help folks to get in the habit of making their sketches more accessible early in the design process.

@hx2a's ColorBlindness library could serve as a starting point for the design and implementation. We could add new functions or perhaps new filters for filter().

Pros (updated based on community comments)

TBD

Cons (updated based on community comments)

TBD

Proposal status

Under review

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No repository files or tests are named. Start by reviewing the linked ColorBlindness library and the simulation and daltonization references, then inspect p5.js's existing filter() API as a possible integration point. Done would require an agreed design and implementation for color-blindness simulation and color adjustment, with the relevant behavior verified.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
accessibility, computer-graphics
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.