Improve color palette accessibility
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 52/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- react, typescript
- Área
- accessibility, frontend
Línea de trabajo
Start by locating BlockNote's default color palette and the code that applies text and highlight colors in light and dark modes. Check how palette options are tested, then restrict or adjust swatches to meet the stated WCAG AA contrast requirements for their intended use; done means failing default options are no longer offered.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Discussed in https://github.com/TypeCellOS/BlockNote/discussions/2768
Originally posted by Ovgodd May 22, 2026
Feature Request
Hello, I'm opening a discussion about color accessibility in BlockNote. This came up during an accessibility audit of Docs (La Suite).
Audited document:
https://docs.numerique.gouv.fr/docs/0d998bef-1b69-47ce-bd18-83d4d849c734/
Is your feature request related to a problem or unsupported use case? Please describe.
The audit asks: should Docs guarantee contrast for any color a user might use?
The answer is usually no, if users could pick anything.
The real issue is not "let users pick safe colors". It's "don't offer colors in that list that break the contrast ratio".
BlockNote color palette
Right now several of those presets fail WCAG AA in common cases. The fix the audit points to is to restrict it, remove or adjust swatches that don't pass, and only show options that work for their intended use (text vs highlight background).
If custom colors are supported, the editor could also provide an accessible warning when the selected color does not meet contrast requirements.
For example, the warning should be announced to assistive technologies using an appropriate live region.
Contrast issues we found
We checked ratios against WCAG AA (4.5:1 for normal text).
Light mode, text color on white (#FFFFFF)
| Color | Ratio | Result |
|---|---|---|
| yellow | 2.11 | Fail |
| gray | 2.81 | Fail |
| orange | 3.28 | Fail |
| red | 4.26 | Borderline (ok for large text only) |
| brown, green, blue, purple, pink | 5.6 to 8.4 | Pass |
Light mode, default editor text (#3F3F3F) on highlight background
Background-only use looks fine. Everything we tested was above 8:1.
Dark mode, text color on editor background (#1F1F1F)
| Color | Ratio | Result |
|---|---|---|
| purple | 3.29 | Fail |
| brown | 3.24 | Fail |
| pink | 3.60 | Fail |
| blue | 4.09 | Fail |
| green | 4.45 | Fail |
| red | 4.22 | Fail |
| gray, yellow, orange | above 5.5 | Pass |
Dark mode, default editor text (#CFCFCF) on highlight background
| Color | Ratio | Result |
|---|---|---|
| gray | 1.81 | Fail |
| yellow | 2.02 | Fail |
| orange | 2.87 | Fail |
| red | 3.61 | Fail |
| blue | 3.64 | Fail |
| brown, purple, pink | 4.3 to 5.4 | Borderline |
Text + background from the same family
If someone sets both (e.g. red text on red background), it gets worse:
| Color | Ratio | Result |
|---|---|---|
| yellow | 1.90 | Fail |
| gray | 2.38 | Fail |
| orange | 2.74 | Fail |
| red | 3.51 | Fail |
From the audit (table cells):
Ratio 3.53 - #E03E3E on #DDEDEA
Ratio 4.26 - #E03E3E on #FFFFFF
Describe the solution you'd like
Restrict the default palette so users can only pick colors that meet contrast requirements. No new free-form color picker needed.
- Lenguaje dominante
- TypeScript
- Estrellas
- 10.2k
- Forks
- 772
- Merge medio
- 3 d 11 h
- PR fusionados (30 d)
- 17
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de TypeCellOS/BlockNote
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
TypeCellOS/BlockNote#3098 ·
-
Off-By-One `RangeError` Crash and Text Duplication in `StyleManager.editLink` and `deleteLink` Abiertoneeds-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
TypeCellOS/BlockNote#3073 ·
-
needs-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
TypeCellOS/BlockNote#3072 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
TypeCellOS/BlockNote#2949 · 1 comentario ·
-
a11y
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
TypeCellOS/BlockNote#2855 ·
Todos los issues de TypeCellOS/BlockNote
Issues similares
-
Browser Waiting for: Product Owner
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
getsentry/sentry-javascript#24577 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
agilepathway/label-checker#640 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
copse-dev/agent-pane#2953 ·
-
[aw] Upgrade available Abiertoagentic-workflows
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
githubnext/rig#534 ·
-
automation missing-model model-sync provider:pioneer
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
anomalyco/models.dev#7701 ·