diff --git a/.jules/palette.md b/.jules/palette.md
new file mode 100644
index 00000000..e977bdd4
--- /dev/null
+++ b/.jules/palette.md
@@ -0,0 +1,4 @@
+
+## 2024-05-23 - Enhanced Accessibility of Icon-Only Composer Buttons
+**Learning:** Textual icons (like `>`) and raw SVG icons inside buttons are frequently missed by screen readers or read confusingly without appropriate ARIA labels and `aria-hidden` attributes. Keyboard focus visibility must also be explicitly set for a fully accessible interface.
+**Action:** When adding or updating icon-only buttons, always ensure they have an `aria-label`, an optional `title` for hover, `aria-hidden="true"` on the internal icon elements, and `focus-visible` styling (`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#175B37]`).
diff --git a/src/components/discussion/composer/ComposerInput.tsx b/src/components/discussion/composer/ComposerInput.tsx
index 43d51466..e0eebe63 100644
--- a/src/components/discussion/composer/ComposerInput.tsx
+++ b/src/components/discussion/composer/ComposerInput.tsx
@@ -60,9 +60,11 @@ export default function ComposerInput({
type="button"
onClick={() => void send()}
disabled={sending || historyLoading || sessionUnavailable || !message.trim() || !agentId}
- class="flex h-11 w-11 shrink-0 items-center justify-center rounded-xl bg-[#175B37] text-white disabled:opacity-40"
+ class="flex h-11 w-11 shrink-0 items-center justify-center rounded-xl bg-[#175B37] text-white disabled:opacity-40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#175B37] focus-visible:ring-offset-2"
+ aria-label="Envoyer le message"
+ title="Envoyer le message"
>
- >
+ >
diff --git a/src/components/discussion/composer/DiscussionHeader.tsx b/src/components/discussion/composer/DiscussionHeader.tsx
index 5a7815f7..c68c1868 100644
--- a/src/components/discussion/composer/DiscussionHeader.tsx
+++ b/src/components/discussion/composer/DiscussionHeader.tsx
@@ -113,10 +113,12 @@ export default function DiscussionHeader({