From 9b60a43082e8d8c62a765adeee76e1f6f91a7980 Mon Sep 17 00:00:00 2001
From: "google-labs-jules[bot]"
<161369871+google-labs-jules[bot]@users.noreply.github.com>
Date: Thu, 25 Jun 2026 11:32:34 +0000
Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20Palette:=20Add=20context-aware?=
=?UTF-8?q?=20ARIA=20labels=20to=20sortable=20citation=20action=20buttons?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Co-authored-by: aicoder2009 <127642633+aicoder2009@users.noreply.github.com>
---
.jules/palette.md | 4 ++++
src/components/wiki/sortable-citation.tsx | 10 ++++++++++
2 files changed, 14 insertions(+)
diff --git a/.jules/palette.md b/.jules/palette.md
index 752c04a..043c9e0 100644
--- a/.jules/palette.md
+++ b/.jules/palette.md
@@ -5,3 +5,7 @@
## 2024-05-17 - Generic Visual Text Buttons and ARIA Context
**Learning:** Components frequently use generic visual text buttons like `[hide]`, `[show]`, `[edit]`, or `[delete]` within lists or loops. Screen readers read these buttons without surrounding visual context, confusing users.
**Action:** Always provide a contextual `aria-label` (e.g., `aria-label="Hide ${title}"`) for generic visual text buttons so screen reader users have proper context.
+
+## 2024-05-19 - Added ARIA labels to repeating text links in lists
+**Learning:** Repetitive text link buttons like `[edit]`, `[delete]`, or `[copy]` within list items (like citations) become ambiguous for screen reader users who hear the same generic action multiple times without context (e.g., "edit what?").
+**Action:** Always add descriptive, context-aware `aria-label` attributes (e.g., `aria-label="Edit citation"`) to generic action buttons so that screen readers announce the action with its specific context, improving overall accessibility.
diff --git a/src/components/wiki/sortable-citation.tsx b/src/components/wiki/sortable-citation.tsx
index da2d6d6..7789824 100644
--- a/src/components/wiki/sortable-citation.tsx
+++ b/src/components/wiki/sortable-citation.tsx
@@ -359,6 +359,7 @@ export function SortableCitation({
setTimeout(() => setCopiedKey(null), 1500);
}}
className="text-wiki-link text-sm hover:underline focus-visible:outline-dotted focus-visible:outline-1 focus-visible:outline-wiki-text"
+ aria-label={copiedKey === "copy" ? "Copied citation to clipboard" : "Copy citation to clipboard"}
>
{copiedKey === "copy" ? "[copied!]" : "[copy]"}
@@ -376,6 +377,7 @@ export function SortableCitation({
}}
className="text-wiki-link text-sm hover:underline focus-visible:outline-dotted focus-visible:outline-1 focus-visible:outline-wiki-text"
title={`In-text citation (${citation.style.toUpperCase()})`}
+ aria-label={copiedKey === "copy-in-text" ? "Copied in-text citation to clipboard" : "Copy in-text citation to clipboard"}
>
{copiedKey === "copy-in-text" ? "[copied!]" : "[copy in-text]"}
@@ -383,6 +385,7 @@ export function SortableCitation({
@@ -390,6 +393,7 @@ export function SortableCitation({
@@ -397,6 +401,7 @@ export function SortableCitation({
@@ -446,6 +451,7 @@ export function SortableCitation({
setEditingNotes(true);
}}
className="text-wiki-link text-xs hover:underline focus-visible:outline-dotted focus-visible:outline-1 focus-visible:outline-wiki-text"
+ aria-label="Edit notes"
>
[edit]
@@ -456,6 +462,7 @@ export function SortableCitation({
if (confirm(`Clear notes for "${label}"?`)) onSaveNotes(citation.id, "");
}}
className="text-wiki-link text-xs hover:underline focus-visible:outline-dotted focus-visible:outline-1 focus-visible:outline-wiki-text"
+ aria-label="Clear notes"
>
[clear]
@@ -469,6 +476,7 @@ export function SortableCitation({
setEditingNotes(true);
}}
className="text-wiki-link text-xs hover:underline focus-visible:outline-dotted focus-visible:outline-1 focus-visible:outline-wiki-text"
+ aria-label="Add notes"
>
[+ add notes]
@@ -563,6 +571,7 @@ export function SortableCitation({
setEditingQuotes(true);
}}
className="text-wiki-link text-xs hover:underline focus-visible:outline-dotted focus-visible:outline-1 focus-visible:outline-wiki-text"
+ aria-label="Edit quotes"
>
[edit]
@@ -587,6 +596,7 @@ export function SortableCitation({
setEditingQuotes(true);
}}
className="text-wiki-link text-xs hover:underline focus-visible:outline-dotted focus-visible:outline-1 focus-visible:outline-wiki-text"
+ aria-label="Add quote"
>
[+ add quote]