Skip to content

fix(labels): WCAG 2.2 AA colour alignment and supporting docs update#990

Merged
ashleyshaw merged 3 commits into
developfrom
fix/labels-wcag-colour-alignment
Jun 18, 2026
Merged

fix(labels): WCAG 2.2 AA colour alignment and supporting docs update#990
ashleyshaw merged 3 commits into
developfrom
fix/labels-wcag-colour-alignment

Conversation

@ashleyshaw

Copy link
Copy Markdown
Member

Chore Pull Request

This repository enforces changelog, release, and label automation for all PRs and issues.
See the organisation-wide Automation Governance & Release Strategy for required rules.

Linked issues

Closes #683
Closes #685
Relates to #650
Relates to #686

Summary

Aligns all GitHub label hex values with the canonical 8-family WCAG 2.2 AA colour strategy and updates supporting documentation to match.

Changes

  • Rewrites docs/LABEL_COLOR_STRATEGY.md (v1.0.0 → v1.1.0): replaces all failing primary/secondary hex values with WCAG 2.2 AA-compliant equivalents (≥ 4.5:1 against white); adds Section 5.2 documenting tertiary pastels as label-background-only; updates implementation checklist and changelog.
  • Updates .github/labels.yml: adds canonical 8-family colour header comment; standardises all label hex values to the strategy palette (Green #1A7F37, Blue #0969DA, Yellow #D29922, Red #CF222E, Orange #9A6700, Purple #8957E5, Gray #57606A, Teal #007580 and their secondaries/tertiaries); corrects status:on-hold to Orange primary #9A6700.
  • Updates docs/LABELING.md (v1.0.1 → v1.0.2): adds Colour Strategy section with 8-family palette table; corrects priority label names (critical/important/minor), type label names (type:improve, type:documentation, type:ci, type:build, type:dependency), and environment label names (env:live, env:prototype) to match labels.yml; updates branch prefix → type label mappings.
  • Removes Claude Code attribution from docs/ISSUE_FIELDS.md authors per branding requirements.
  • Fixes scripts/agents/labeling.agent.js: deps/type:dependency (singular); adds build/type:build; keyword map updated to type:dependency.

Impact / Compatibility

  • Runtime/behaviour changes: None — colour values only affect GitHub label display
  • Build/dev-experience impact: Label sync workflows will update live label colours on next run

Verification

  • CI passes
  • npm run validate:frontmatter passes for all edited docs
  • All label hex values drawn from canonical 8-family palette

Risk & Rollback

  • Risk level: Low
  • Rollback plan: Revert commits; re-run label sync to restore previous colours

Changelog

Fixed


Checklist (Global DoD / PR)

  • All AC met and demonstrated
  • Tests added/updated (N/A — documentation and colour-value changes only, no executable code logic changed)
  • Accessibility checklist completed:
    • Semantic HTML and heading order verified
    • Keyboard navigation and visible focus states verified
    • ARIA used only where needed
    • Contrast and non-colour cues reviewed (WCAG 2.2 AA or higher)
  • Docs/readme/changelog updated
  • Security checklist completed:
    • Untrusted input validated and sanitised
    • Output escaped for its rendering context
    • Privileged actions enforce nonce and capability checks
    • No secrets/sensitive data introduced; OWASP risks reviewed
  • Code/design reviews approved
  • CI green; linked issues closed; release notes prepared

🤖 Generated with Claude Code

https://claude.ai/code/session_01Fswad6TctbhticPTbLEhPL


Generated by Claude Code

@coderabbitai

coderabbitai Bot commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@ashleyshaw, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 15 minutes and 30 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more credits in the billing tab to continue.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits.

🚦 How do rate limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, the refill rate gradually slows as usage increases. The highest same-day bursts are limited more strictly.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: a854155a-21a1-45cd-b06e-54942f34bbe3

📥 Commits

Reviewing files that changed from the base of the PR and between e664aa1 and ae27bec.

📒 Files selected for processing (5)
  • .github/labels.yml
  • docs/ISSUE_FIELDS.md
  • docs/LABELING.md
  • docs/LABEL_COLOR_STRATEGY.md
  • scripts/agents/labeling.agent.js
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/labels-wcag-colour-alignment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions

Copy link
Copy Markdown
Contributor

claude added 3 commits June 18, 2026 17:38
- Rewrites docs/LABEL_COLOR_STRATEGY.md (v1.0.0 → v1.1.0): replaces all
  failing primary/secondary colours with WCAG AA-compliant equivalents
  (≥4.5:1 against white), documents tertiary light pastels as label-
  background-only, adds Section 5.2, updates implementation checklist
  and changelog.
- Updates .github/labels.yml: adds colour-family header comment,
  standardises all label hex values to the canonical 8-family palette
  (Green 1A7F37/2A7A3B, Blue 0969DA/3467D3, Yellow D29922/F2D06D,
  Red CF222E/B91C1C, Orange 9A6700/FDBF7C, Purple 8957E5,
  Gray 57606A/D0D7DE, Teal 007580/0D7F6F).

Closes #683. Addresses accessibility findings from #650 and #686.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fswad6TctbhticPTbLEhPL
- docs/LABELING.md (v1.0.1 → v1.0.2): adds Colour Strategy section with
  8-family palette table; corrects priority label names to match labels.yml
  (critical/important/minor instead of urgent/high/low); corrects type
  labels (type:improve, type:documentation, type:ci, type:build,
  type:dependency instead of stale aliases); fixes environment label names
  (env:live, env:prototype); expands compatibility label examples; adds
  colour strategy reference entry.
- docs/ISSUE_FIELDS.md: removes "Claude Code" from authors field and
  changelog entry per branding requirements.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fswad6TctbhticPTbLEhPL
- .github/labels.yml: status:on-hold colour FDBF7C → 9A6700 (Orange
  primary, per strategy spec)
- docs/LABEL_COLOR_STRATEGY.md: replace non-canonical label references
  — priority:medium → priority:normal, type:duplicate → status:duplicate,
  priority:urgent → priority:critical, priority:low → priority:minor,
  area:ci-cd → area:ci, type:accessibility → type:a11y, type:internal →
  type:chore; corrects Gray family assignment rules and label examples
- scripts/agents/labeling.agent.js: BRANCH_PREFIX_TYPE_MAP —
  deps/ now maps to type:dependency (singular); adds build/ → type:build;
  keyword map entries for dependencies/dependency/bump version updated
  to type:dependency (singular)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fswad6TctbhticPTbLEhPL
@ashleyshaw ashleyshaw force-pushed the fix/labels-wcag-colour-alignment branch from dd02ac4 to ae27bec Compare June 18, 2026 17:39
@ashleyshaw ashleyshaw merged commit bd2074d into develop Jun 18, 2026
16 of 24 checks passed
@ashleyshaw ashleyshaw deleted the fix/labels-wcag-colour-alignment branch June 18, 2026 17:39

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request updates the repository's label configuration and documentation to implement a WCAG 2.2 AA compliant color strategy across 8 primary color families. It updates .github/labels.yml, docs/LABELING.md, and docs/LABEL_COLOR_STRATEGY.md to reflect the new colors, and adjusts the labeling agent script (scripts/agents/labeling.agent.js) to align with the updated label types (such as mapping dependencies to type:dependency). The review feedback points out inconsistencies in docs/LABEL_COLOR_STRATEGY.md where the area:ci label is documented under the Gray family section despite being assigned a Blue family color (#C5DEF5), suggesting it be correctly categorized under the Blue family in both the summary table and the detailed family sections.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment on lines +56 to +61
| **Blue (Planning/Review)** | `#0969DA`, `#3467D3`, `#C5DEF5` | Discussion, collaboration, needs input | type:documentation, type:discussion, status:needs-review, lang:* | 52 |
| **Yellow (Testing/Audit)** | `#D29922`, `#F2D06D`, `#FCE2B7` | Validation, testing, audit workflows | status:needs-testing, type:bug (when testing), type:audit | 24 |
| **Red (Blocked/Impediment)** | `#CF222E`, `#B91C1C`, `#FCE2E2` | Blockers, duplicates, critical issues | status:blocked, status:duplicate, priority:critical, type:security | 18 |
| **Orange (On-Hold/Deferred)** | `#9A6700`, `#D5A87B`, `#FDBF7C` | Delayed, deferred, rejected, wontfix | status:wontfix, status:on-hold, type:epic (when deferred), priority:minor | 16 |
| **Purple (Design Workflows)** | `#8957E5`, `#B4A7E8`, `#D89AF6` | Design, UX, accessibility | type:design, type:ui, type:a11y, design:* | 14 |
| **Gray (Meta/Infrastructure)** | `#57606A`, `#B1BAC4`, `#D0D7DE` | Process, meta, automation, infrastructure | meta:*, area:ci, type:chore, domain:* | 12 |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

Since area:ci is mapped to #C5DEF5 (Blue tertiary) and belongs to the Blue family, it should be listed under the Blue family's label categories and removed from the Gray family's label categories in Table 1.

Suggested change
| **Blue (Planning/Review)** | `#0969DA`, `#3467D3`, `#C5DEF5` | Discussion, collaboration, needs input | type:documentation, type:discussion, status:needs-review, lang:* | 52 |
| **Yellow (Testing/Audit)** | `#D29922`, `#F2D06D`, `#FCE2B7` | Validation, testing, audit workflows | status:needs-testing, type:bug (when testing), type:audit | 24 |
| **Red (Blocked/Impediment)** | `#CF222E`, `#B91C1C`, `#FCE2E2` | Blockers, duplicates, critical issues | status:blocked, status:duplicate, priority:critical, type:security | 18 |
| **Orange (On-Hold/Deferred)** | `#9A6700`, `#D5A87B`, `#FDBF7C` | Delayed, deferred, rejected, wontfix | status:wontfix, status:on-hold, type:epic (when deferred), priority:minor | 16 |
| **Purple (Design Workflows)** | `#8957E5`, `#B4A7E8`, `#D89AF6` | Design, UX, accessibility | type:design, type:ui, type:a11y, design:* | 14 |
| **Gray (Meta/Infrastructure)** | `#57606A`, `#B1BAC4`, `#D0D7DE` | Process, meta, automation, infrastructure | meta:*, area:ci, type:chore, domain:* | 12 |
| **Blue (Planning/Review)** | `#0969DA`, `#3467D3`, `#C5DEF5` | Discussion, collaboration, needs input | type:documentation, type:discussion, status:needs-review, area:ci, lang:* | 52 |
| **Yellow (Testing/Audit)** | `#D29922`, `#F2D06D`, `#FCE2B7` | Validation, testing, audit workflows | status:needs-testing, type:bug (when testing), type:audit | 24 |
| **Red (Blocked/Impediment)** | `#CF222E`, `#B91C1C`, `#FCE2E2` | Blockers, duplicates, critical issues | status:blocked, status:duplicate, priority:critical, type:security | 18 |
| **Orange (On-Hold/Deferred)** | `#9A6700`, `#D5A87B`, `#FDBF7C` | Delayed, deferred, rejected, wontfix | status:wontfix, status:on-hold, type:epic (when deferred), priority:minor | 16 |
| **Purple (Design Workflows)** | `#8957E5`, `#B4A7E8`, `#D89AF6` | Design, UX, accessibility | type:design, type:ui, type:a11y, design:* | 14 |
| **Gray (Meta/Infrastructure)** | `#57606A`, `#B1BAC4`, `#D0D7DE` | Process, meta, automation, infrastructure | meta:*, type:chore, domain:* | 12 |
References
  1. Documentation and governance files in the docs/ directory must use UPPERCASE naming with underscores. (link)

Comment on lines +259 to +268
- All `area:ci` labels → `#C5DEF5` (Blue tertiary — CI is in the Blue family)
- All `type:chore` labels → `#57606A`
- Domain/organisation labels → `#B1BAC4`
- Infrastructure/automation supporting labels → `#D0D7DE`

**Label Examples**:

- meta:needs-changelog
- meta:stale
- area:ci

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

The area:ci label is mapped to #C5DEF5 (Blue tertiary) and belongs to the Blue family. Documenting its assignment rule and listing it as an example under Section 2.7 (Gray Family) is inconsistent and confusing. It should be documented under Section 2.2 (Blue Family) instead.

Suggested change
- All `area:ci` labels → `#C5DEF5` (Blue tertiary — CI is in the Blue family)
- All `type:chore` labels → `#57606A`
- Domain/organisation labels → `#B1BAC4`
- Infrastructure/automation supporting labels → `#D0D7DE`
**Label Examples**:
- meta:needs-changelog
- meta:stale
- area:ci
- All `type:chore` labels → `#57606A`
- Domain/organisation labels → `#B1BAC4`
- Infrastructure/automation supporting labels → `#D0D7DE`
**Label Examples**:
- meta:needs-changelog
- meta:stale
- type:chore
- area:maintenance
References
  1. Documentation and governance files in the docs/ directory must use UPPERCASE naming with underscores. (link)

@github-actions

Copy link
Copy Markdown
Contributor

🔍 Reviewer Summary for PR #990

CI Status:success
Files changed: 5
Risk Distribution: 0 critical, 1 high, 0 medium, 4 low

Recommendations

  • Ready to proceed pending human review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: dd02ac4e17

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/labels.yml

- name: type:documentation
color: 4E575F
color: 57606A

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Use the documented blue colour for docs labels

With this value, the label sync will publish type:documentation as Gray primary (#57606A), but the new colour strategy added in this commit assigns all type:documentation labels to the Blue family/secondary (#3467D3). In repositories that rely on the synced labels for triage, documentation work will be visually grouped with meta/infrastructure rather than planning/review, contradicting the source-of-truth strategy the same change introduces.

Useful? React with 👍 / 👎.


## 5. Accessibility & Contrast Standards

All **primary and secondary** colors in this strategy meet **WCAG 2.2 AA** requirements (minimum 4.5:1 ratio) against white backgrounds. Tertiary colours are designated GitHub label backgrounds only and rely on GitHub's auto-selected black text for accessibility.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Limit AA claims to colours that pass

This statement says all primary and secondary colours meet 4.5:1 against white, but several secondary palette entries listed in this document are light/background-only colours and fail as foreground text on white, e.g. #F2D06D is about 1.5:1, #D5A87B about 2.16:1, #B4A7E8 about 2.18:1, and #B1BAC4 about 1.96:1. Contributors following this guidance outside GitHub label chips would create non-WCAG-compliant text colours, so the claim should be limited to the verified dark variants or mark the light secondaries as background-only.

Useful? React with 👍 / 👎.

Comment thread .github/labels.yml
# All labeling, status, type, and standardisation is handled by the unified labeling agent and workflow.
# This file is the single source of truth for all automation and label configuration.
#
# Color families (from docs/LABEL_COLOR_STRATEGY.md):

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Finish migrating legacy label colours

The new palette header makes labels.yml look fully constrained to these eight families, but the same file still contains legacy colours outside the documented palette, including D4C5F9, B60205, C2E0C6, and 5319E7 on labels such as status:needs-design-review, priority:critical, priority:minor, and type:question. Because the label sync reads this file directly, those live labels will remain undocumented/outside the canonical strategy even after this “all label colours derive from the palette” update.

Useful? React with 👍 / 👎.

ashleyshaw added a commit that referenced this pull request Jun 19, 2026
…R_STRATEGY.md (#994)

Closes #992

Moves area:ci from Gray family to Blue family in docs/LABEL_COLOR_STRATEGY.md — Table 1, Section 2.2 assignment rules and label examples, and Section 2.7 Gray examples. Addresses Gemini code review findings from PR #990.
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.

[Wave 5.2.4] Update Supporting Documentation [Wave 5.2.2] Reconcile Issue-Fields Type Mapping

2 participants