diff --git a/.Jules/palette.md b/.Jules/palette.md new file mode 100644 index 000000000..3185a9d8b --- /dev/null +++ b/.Jules/palette.md @@ -0,0 +1,3 @@ +## 2026-10-19 - Missing ARIA Labels on Template Buttons +**Learning:** The server-rendered HTML templates (`pkgs/id/src/web/templates.rs`) often miss `aria-label` attributes on empty or icon-only interactive elements like theme selectors or short "+" buttons, despite having visual `title` attributes. This is a common accessibility anti-pattern in this app's UI. +**Action:** Always check server-rendered HTML blocks for missing `aria-label`s on `button` tags when they are visually minimal or empty. diff --git a/pkgs/id/src/web/templates.rs b/pkgs/id/src/web/templates.rs index 2283dbb75..1d5516253 100644 --- a/pkgs/id/src/web/templates.rs +++ b/pkgs/id/src/web/templates.rs @@ -93,9 +93,9 @@ pub fn render_main_page_wrapper(content: &str) -> String { html.push_str(" peers\n"); html.push_str(" settings\n"); html.push_str(" \n"); - html.push_str(" \n"); - html.push_str(" \n"); - html.push_str(" \n"); + html.push_str(" \n"); + html.push_str(" \n"); + html.push_str(" \n"); html.push_str(" \n"); html.push_str(" \n"); html.push_str(" \n"); @@ -458,9 +458,9 @@ pub fn render_editor(doc_id: &str, name: &str, content: &str, hash: &str) -> Str html.push_str(" peers\n"); html.push_str(" settings\n"); html.push_str(" \n"); - html.push_str(" \n"); - html.push_str(" \n"); - html.push_str(" \n"); + html.push_str(" \n"); + html.push_str(" \n"); + html.push_str(" \n"); html.push_str(" \n"); html.push_str(" \n"); html.push_str(" \n"); @@ -474,7 +474,7 @@ pub fn render_editor(doc_id: &str, name: &str, content: &str, hash: &str) -> Str html.push_str(" \n"); html.push_str(" \n"); html.push_str(" \n"); - html.push_str(" \n"); + html.push_str(" \n"); html.push_str(" \n"); html.push_str(" \n");