From 232777a1e0e81b56960613b6b681a8c92ad220f7 Mon Sep 17 00:00:00 2001
From: seonghobae <8172694+seonghobae@users.noreply.github.com>
Date: Mon, 5 Oct 2026 20:56:49 +0000
Subject: [PATCH 1/4] =?UTF-8?q?=F0=9F=8E=A8=20Palette:=20Add=20explicit=20?=
=?UTF-8?q?visual=20required=20indicator=20to=20document=20field?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
💡 What: Added an explicit `(required)` to the document input field label.
🎯 Why: To improve form accessibility by explicitly indicating the required status of the file upload field, complying with WCAG and the `ViewerUiRequiredFieldAccessibilityTest` pattern.
♿ Accessibility: Provides clear, textual feedback to users and screen readers that the document field is mandatory.
---
.jules/palette.md | 4 ++++
.../com/clearfolio/viewer/controller/ViewerUiController.java | 2 +-
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/.jules/palette.md b/.jules/palette.md
index a34ea59b2..ffb206135 100644
--- a/.jules/palette.md
+++ b/.jules/palette.md
@@ -13,3 +13,7 @@
## 2026-07-13 - Async Table Actions UX
**Learning:** Adding explicit loading and disabled states to table action buttons that invoke asynchronous processes helps prevent redundant API calls and visually assures the user that their request is being handled.
**Action:** Consistently apply `disabled` state and `Loading...` text changes to inline table action buttons linked to async workflows, and carefully preserve underlying DOM structures with `Array.from(btn.childNodes)` during the loading cycle to avoid rendering regressions.
+
+## 2026-10-05 - Required field visually explicit indicator
+**Learning:** Depending exclusively on implicit input `required` attributes and custom CSS pseudo-class required styling triggers accessibility violation alerts in automated accessibility test cases (e.g., `ViewerUiRequiredFieldAccessibilityTest`). Form fields MUST include an explicit textual indicator that they are required directly within the `