π¨ Palette: λΉλκΈ° μμ λ²νΌμ aria-busy μμ±μ ν΅ν μ κ·Όμ±(a11y) κ°μ #192
π¨ Palette: λΉλκΈ° μμ
λ²νΌμ aria-busy μμ±μ ν΅ν μ κ·Όμ±(a11y) κ°μ #192seonghobae wants to merge 1 commit into
Conversation
λΉλκΈ° λ²νΌ μ‘μ (submitDocument, loadDemoData, refreshKpiEvidence, retryActiveJob, Details λ²νΌ) μ§ν μ€ νλ©΄ νλ κΈ° μ¬μ©μμκ² λ‘λ© μνλ₯Ό λͺ νν μ λ¬νκΈ° μν΄ `aria-busy="true"` μμ±μ λμ μΌλ‘ μΆκ° λ° μ κ±°νλλ‘ μμ νμ΅λλ€.
|
π Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a π emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
There was a problem hiding this comment.
Pull request overview
This PR improves the Clearfolio viewer demo UIβs accessibility by marking key async button actions as βbusyβ during network work, allowing assistive technologies to detect in-progress state changes (without altering visual rendering).
Changes:
- Add
aria-busy="true"while async work is in-flight for key demo UI actions (submit, load demo, refresh KPI evidence, retry job, and history βDetailsβ). - Ensure
aria-busyis removed on completion viafinally/.finally(...)cleanup. - Document the accessibility learning/pattern in
.jules/palette.md.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| src/main/resources/static/assets/viewer/demo.js | Adds aria-busy toggling for async button actions and restores original button content/state after completion. |
| .jules/palette.md | Records the new a11y pattern/learning for async button busy-state signaling. |
π‘ Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| openJobDetail(job).finally(() => { | ||
| btn.replaceChildren(...initialChildren); | ||
| btn.disabled = false; | ||
| btn.removeAttribute("aria-busy"); | ||
| }); |
| ## 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. | ||
| ## 2024-05-18 - λΉλκΈ° μμ μ€ λ²νΌμ μ κ·Όμ± κ°μ |
π‘ What: λΉλκΈ° λ€νΈμν¬ μμ²μ μννλ 5κ°μ μ£Όμ λ²νΌ μ‘μ (
submitDocument,loadDemoData,refreshKpiEvidence,retryActiveJob, λ° Table ActionμDetailsλ²νΌ)μ λν΄, λ‘λ© μ€ μνλ₯Ό λνλ΄λaria-busy="true"μμ±μ λμ μΌλ‘ μΆκ°νκ³finallyλΈλ‘μμ μμ νκ² μ κ±°νλ κΈ°λ₯μ ꡬννμ΅λλ€.π― Why: κΈ°μ‘΄μλ λΉλκΈ° μμ μ λ²νΌμ λΉνμ±ν(
disabled=true)νκ³ ν μ€νΈλ§ λ³κ²½νκΈ° λλ¬Έμ, νλ©΄ νλ κΈ°(Screen Reader)λ₯Ό μ¬μ©νλ μκ° μ₯μ μΈ μ¬μ©μμκ² μμκ° νμ¬ λ‘λ© μ€μ΄λΌλ μν λ³νκ° λͺ ννκ² μ λ¬λμ§ μλ μ κ·Όμ± λ¬Έμ κ° μμμ΅λλ€.aria-busyμμ±μ λͺ μν¨μΌλ‘μ¨ λ³΄μ‘° κΈ°μ κΈ°κΈ°κ° μ¬μ©μμκ² νμ¬ μμ μνλ₯Ό μ ννκ² μλ΄ν μ μμ΅λλ€.πΈ Before/After: μκ°μ μΈ λ λλ§ λ³κ²½ μ¬νμ μμΌλ, DOM μμμ
aria-busy="true"μμ±μ΄ μΆκ°λλ κ²μ Playwright ν μ€νΈ λ° μ€ν¬λ¦°μ·μΌλ‘ κ²μ¦ μλ£νμ΅λλ€.βΏ Accessibility: 보쑰 κΈ°μ κΈ°κΈ°μ λΉλκΈ° μ²λ¦¬ μνλ₯Ό μ€μκ°μΌλ‘ μλ €μ£Όμ΄ μ λ°μ μΈ μΈν°λμ μ κ·Όμ±μ΄ ν¬κ² ν₯μλμμ΅λλ€.
PR created automatically by Jules for task 11905636816444366927 started by @seonghobae