Skip to content

fix(accessibility): disable unavailable session-history clearing - #441

Open
seonghobae wants to merge 5 commits into
mainfrom
jules/ux-improvement-clear-history-button-12925978774739389377
Open

fix(accessibility): disable unavailable session-history clearing#441
seonghobae wants to merge 5 commits into
mainfrom
jules/ux-improvement-clear-history-button-12925978774739389377

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 13, 2026

Copy link
Copy Markdown
Collaborator

Objective

Prevent an unavailable session-history action from appearing executable and give assistive technology a contextual control name.

Exact current-head evidence

  • protected base: eb0a32e87e7470469c8fa0f8c67d9583654bef57;
  • exact head: ca87ad1fe2133ced7ee6218ecf3e292cf1573025;
  • changed paths: demo shell, history-state synchronization, focused shell regression, and generated task metadata only;
  • CI, Security Scan, SAST Semgrep, and fuzz: terminal-success;
  • mergeable: true;
  • unresolved inline findings: zero.

Interaction contract

The server-rendered empty state starts clear-history-btn disabled and labels it Clear session history. Every history render synchronizes the disabled state with whether a clearable history entry exists, so loading, adding, or clearing history cannot leave stale action availability.

Scope boundary

This changes only the buyer-demo session-history control. It does not change browser storage format, conversion state, tenant authority, signed links, or production workspace/session bootstrap.

Merge gate

Keep this exact head unchanged. Auto-merge may act only after all live required checks remain successful, zero valid unresolved findings remain, and a qualifying independent non-author approval is attached to this exact head. Automated evidence is not approval.

빈 상태일 때의 'Clear' 버튼 접근성과 사용성을 개선하기 위해 빈 상태 시 버튼 비활성화(disabled) 속성을 추가하고, 스크린 리더 사용자들을 위해 명확한 동작 의미를 전달할 수 있도록 aria-label 속성을 추가하였습니다. 변경에 맞춰 테스트 케이스도 업데이트되었습니다.
@google-labs-jules

Copy link
Copy Markdown

👋 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 @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

@coderabbitai

coderabbitai Bot commented Aug 13, 2026

Copy link
Copy Markdown

Important

Review available on request

  • 🔍 Trigger review

Reviews should be triggered manually for repositories with fewer than 10 stars. Select Trigger review above or comment @coderabbitai review to review the latest changes. For a full review, comment @coderabbitai full review.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 03f0b318-a96b-497a-9fe0-7ec34dac75b6


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@seonghobae
seonghobae enabled auto-merge (squash) August 15, 2026 09:07

Copy link
Copy Markdown
Collaborator Author

@opencode-agent review
@coderabbitai review
@cwl-noema-review review
@strix review

Review exact head e03168ff32b606f48189b0ad9ee0ee9c690a151c only. The buyer-readiness Node harness was corrected to extract the complete renderHistory function instead of truncating JavaScript mid-block. Exact-head CI, Security Scan, SAST Semgrep, and fuzz are terminal-success; unresolved threads are zero. Review read-only; do not mutate the branch, synthesize author approval, weaken protection, or merge.

@coderabbitai

coderabbitai Bot commented Aug 15, 2026

Copy link
Copy Markdown
🧩 Analysis chain

🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

expected='e03168ff32b606f48189b0ad9ee0ee9c690a151c'

echo '== HEAD =='
git rev-parse HEAD
echo '== Expected commit exists =='
git cat-file -t "$expected"
echo '== Commit metadata =='
git show -s --format='%H%n%P%n%s' "$expected"
echo '== Changed paths =='
git diff-tree --no-commit-id --name-status -r "$expected"
echo '== Diff =='
git show --format= --find-renames --find-copies "$expected"
echo '== Outlines for changed source files =='
git diff-tree --no-commit-id --name-only -r "$expected" |
  while IFS= read -r path; do
    case "$path" in
      *.js|*.mjs|*.cjs|*.ts|*.tsx|*.html)
        printf '\n--- %s ---\n' "$path"
        ast-grep outline "$path" --items all 2>&1 || true
        ;;
    esac
  done

Length of output: 4459


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

echo '== Harness with line numbers =='
nl -ba scripts/test_demo_history_clear_button.py | sed -n '1,260p'

echo '== Locate target definitions and clear-button state updates =='
rg -n -C 8 --glob '*.{js,mjs,cjs,ts,tsx}' \
  '^\s*function\s+(renderHistory|addDetailRow)\s*\(|\bclearHistoryBtn\.(disabled|setAttribute|removeAttribute)\b' \
  .

echo '== Candidate source outlines =='
fd -e js -e mjs -e cjs -e ts -e tsx . . \
  -x sh -c '
    if rg -q "function renderHistory\\s*\\(" "$1"; then
      printf "\n--- %s ---\n" "$1"
      ast-grep outline "$1" --items all
    fi
  ' sh {}

Length of output: 1000


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

echo '== Harness =='
sed -n '1,260p' scripts/test_demo_history_clear_button.py

echo '== Target definitions and clear-button state updates =='
rg -n -C 10 --glob '*.{js,mjs,cjs,ts,tsx}' \
  '^\s*function\s+(renderHistory|addDetailRow)\s*\(|\bclearHistoryBtn\.(disabled|setAttribute|removeAttribute)\b' \
  .

echo '== Files that declare renderHistory =='
rg -n --glob '*.{js,mjs,cjs,ts,tsx}' '^\s*function\s+renderHistory\s*\(' .

echo '== Candidate source outlines =='
while IFS=: read -r file _; do
  printf '\n--- %s ---\n' "$file"
  ast-grep outline "$file" --items all || true
done < <(rg -n --glob '*.{js,mjs,cjs,ts,tsx}' '^\s*function\s+renderHistory\s*\(' .)

Length of output: 8800


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

echo '== Complete renderHistory function =='
sed -n '113,153p' src/main/resources/static/assets/viewer/demo.js

echo '== Harness references in repository configuration and scripts =='
rg -n -C 3 \
  'test_demo_history_clear_button\.py|DemoHistoryClearButtonTest|scripts/test_demo_history_clear_button' \
  . \
  -g '!scripts/test_demo_history_clear_button.py' \
  -g '!**/.git/**' || true

echo '== Exact commit patch summary =='
git show --check --format=fuller --stat e03168ff32b606f48189b0ad9ee0ee9c690a151c

Length of output: 2789


@seonghobae Reviewed exact head e03168ff32b606f48189b0ad9ee0ee9c690a151c.

I found no issues in this commit.

The Node harness now extracts the complete renderHistory function. Its boundary matches the current adjacent top-level addDetailRow declaration. The harness covers empty and non-empty history states, including the clear-button state, empty-state visibility, and row rendering. git show --check reports no whitespace errors.

⚠️ Action not completed

Review rate limited.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

seonghobae and others added 2 commits August 15, 2026 09:11
빈 상태일 때의 'Clear' 버튼 접근성과 사용성을 개선하기 위해 빈 상태 시 버튼 비활성화(disabled) 속성을 추가하고, 스크린 리더 사용자들을 위해 명확한 동작 의미를 전달할 수 있도록 aria-label 속성을 추가하였습니다. 변경에 맞춰 테스트 케이스도 업데이트되었습니다.
@seonghobae seonghobae changed the title 🎨 Palette: 빈 상태 시 동작 불가한 삭제 버튼 비활성화 및 접근성 개선 fix(accessibility): disable unavailable session-history clearing Aug 15, 2026

Copy link
Copy Markdown
Collaborator Author

Exact-current-head independent review request for ca87ad1fe2133ced7ee6218ecf3e292cf1573025 over protected main eb0a32e87e7470469c8fa0f8c67d9583654bef57.

CI, Security Scan, SAST Semgrep, and fuzz are terminal-success; unresolved inline findings are zero. The four-file slice synchronizes the unavailable Clear action with actual session-history state and adds a contextual accessible name.

@opencode-agent review
@coderabbitai review
@cwl-noema-review review
@strix review

Review this exact head read-only. Do not mutate the branch, synthesize author approval, weaken protection, or merge.

@coderabbitai

coderabbitai Bot commented Aug 15, 2026

Copy link
Copy Markdown

Rate Limit Exceeded

@seonghobae have exceeded the limit for the number of chat messages per hour. Please wait 10 minutes and 33 seconds before sending another message.

Copy link
Copy Markdown
Collaborator Author

Exact-current-head independent review request for ca87ad1fe2133ced7ee6218ecf3e292cf1573025 over protected main eb0a32e87e7470469c8fa0f8c67d9583654bef57.

Freshly rechecked: CI, Security Scan, SAST Semgrep, and fuzz are terminal-success; mergeable is true; unresolved review threads are zero. The four-file delta is limited to the buyer-demo session-history control, its state synchronization, focused regression, and task metadata. Review this exact head only.

@coderabbitai review
@opencode-agent review
@cwl-noema-review review
@strix review

@coderabbitai

coderabbitai Bot commented Aug 15, 2026

Copy link
Copy Markdown

Rate Limit Exceeded

@seonghobae have exceeded the limit for the number of chat messages per hour. Please wait 8 minutes and 41 seconds before sending another message.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant