From c2d90d47c1e3f2ec1b51eeccaa09128a672059ef Mon Sep 17 00:00:00 2001
From: "google-labs-jules[bot]"
<161369871+google-labs-jules[bot]@users.noreply.github.com>
Date: Sat, 25 Apr 2026 05:23:09 +0000
Subject: [PATCH] fix(a11y): add aria-labels to icon-only buttons
Co-authored-by: threehymns <70611435+threehymns@users.noreply.github.com>
---
.Jules/palette.md | 3 +++
src/components/editor/extensions/code-block-codemirror.tsx | 2 ++
src/components/frontmatter-editor.tsx | 4 ++++
src/components/graph-tab.tsx | 4 ++++
4 files changed, 13 insertions(+)
create mode 100644 .Jules/palette.md
diff --git a/.Jules/palette.md b/.Jules/palette.md
new file mode 100644
index 0000000..0642f7b
--- /dev/null
+++ b/.Jules/palette.md
@@ -0,0 +1,3 @@
+## 2024-05-18 - [Add ARIA labels to icon-only buttons]
+**Learning:** Found multiple instances where icon-only buttons lacked an `aria-label` attribute (e.g. `title` attributes were present, but not `aria-label`). This causes screen readers to have a poor experience because they do not reliably read `title` attributes on interactive elements. This app uses `
diff --git a/src/components/graph-tab.tsx b/src/components/graph-tab.tsx
index 4b13707..8b08df9 100644
--- a/src/components/graph-tab.tsx
+++ b/src/components/graph-tab.tsx
@@ -1319,6 +1319,7 @@ interface ForceGraphInstance {
variant="ghost"
size="icon"
title="Reset settings"
+ aria-label="Reset settings"
onClick={() => setPanel(DEFAULT_PANEL)}
className="size-7"
>
@@ -1328,6 +1329,7 @@ interface ForceGraphInstance {
variant="ghost"
size="icon"
title="Close panel"
+ aria-label="Close panel"
onClick={() => setPaneOpen(false)}
className="size-7"
>
@@ -1431,6 +1433,8 @@ interface ForceGraphInstance {
{
const next = panel.groups.filter(
(_, i) => i !== index,