Skip to content

ADFA-4606: Improve output panel screen reader activation#1539

Open
makhlwf wants to merge 1 commit into
appdevforall:stagefrom
makhlwf:community/ADFA-4606-output-panel-accessibility
Open

ADFA-4606: Improve output panel screen reader activation#1539
makhlwf wants to merge 1 commit into
appdevforall:stagefrom
makhlwf:community/ADFA-4606-output-panel-accessibility

Conversation

@makhlwf

@makhlwf makhlwf commented Jul 16, 2026

Copy link
Copy Markdown

Closes #1498.

Summary:

  • Adds screen-reader click and expand actions to the build status output panel handle.
  • Keeps normal touch interaction swipe-based by avoiding a regular tap handler.

Testing:

  • Manual Android Studio build/test: TalkBack double-tap opens the panel; normal users still swipe.

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@makhlwf
makhlwf force-pushed the community/ADFA-4606-output-panel-accessibility branch from 3a7b77c to 364601a Compare July 16, 2026 23:46
@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 74cdf398-ee5b-40b7-b695-5d2b4950cf4c

📥 Commits

Reviewing files that changed from the base of the PR and between 364601a and af1a79a.

📒 Files selected for processing (2)
  • app/src/main/java/com/itsaky/androidide/ui/EditorBottomSheet.kt
  • resources/src/main/res/values/strings.xml
🚧 Files skipped from review as they are similar to previous changes (2)
  • resources/src/main/res/values/strings.xml
  • app/src/main/java/com/itsaky/androidide/ui/EditorBottomSheet.kt

📝 Walkthrough
  • Improved accessibility for the build-status output panel to support TalkBack activation (double-tap via standard accessibility actions).
  • Added an accessibility delegate that exposes expand/open and collapse/close actions and routes them to expandOutputPanel() / collapseOutputPanel() based on current panel state.
  • Kept touch interaction swipe-based for regular users by avoiding a standard tap handler.
  • Added localized string resources for the panel’s accessibility descriptions and action labels (empty vs populated state).
  • Updated the build-status content description when the status text changes and when the sheet/panel state changes.
  • Risk/verification: validate behavior across TalkBack versions for both expanded and collapsed states, and ensure all newly added strings are fully translated.

Walkthrough

The build-status panel now exposes accessibility descriptions and expand/collapse actions. Actions invoke existing output-panel helpers, descriptions track status and sheet-state changes, setup occurs during initialization, and the delegate is cleared on detachment. New string resources provide the labels.

Changes

Build-status accessibility

Layer / File(s) Summary
Accessibility labels and actions
resources/src/main/res/values/strings.xml
Adds descriptions for empty and populated build-status output panels and labels for expanding and collapsing the panel.
Build-status accessibility behavior
app/src/main/java/com/itsaky/androidide/ui/EditorBottomSheet.kt
Configures the accessibility delegate and actions, routes actions to panel expansion or collapse, synchronizes content descriptions with status and sheet-state changes, and clears the delegate when detached.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant ScreenReader
  participant build_status_layout
  participant EditorBottomSheet
  ScreenReader->>build_status_layout: Focus build-status panel
  build_status_layout->>EditorBottomSheet: Perform expand or collapse action
  EditorBottomSheet->>EditorBottomSheet: Expand or collapse output panel
  EditorBottomSheet->>build_status_layout: Update content description
  build_status_layout-->>ScreenReader: Announce updated state
Loading

Possibly related PRs

  • appdevforall/CodeOnTheGo#1513: Updates the same updateFabVisibility(...) sheet-state path used to refresh build-status accessibility descriptions.

Poem

A rabbit taps the panel bright,
It opens wide with one quick bite.
Status words hop into view,
Close it when the work is through.
Accessible paths feel right!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly matches the main change: improving screen-reader activation for the output panel.
Description check ✅ Passed The description is directly related to the accessibility changes in the pull request.
Linked Issues check ✅ Passed The PR adds click and expand accessibility actions so TalkBack users can open the output panel with double-tap, matching #1498.
Out of Scope Changes check ✅ Passed The changes stay focused on output panel accessibility and supporting strings, with no obvious unrelated scope.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
resources/src/main/res/values/strings.xml (1)

363-364: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Use the required cd_* prefix for content descriptions.

These resources are assigned to View.contentDescription; rename them and update the Kotlin references.

Proposed resource-key changes
-	<string name="desc_build_status_output_panel_empty">Build status. Double tap to open output panel.</string>
-	<string name="desc_build_status_output_panel">Build status: %1$s. Double tap to open output panel.</string>
+	<string name="cd_build_status_output_panel_empty">Build status. Double tap to open output panel.</string>
+	<string name="cd_build_status_output_panel">Build status: %1$s. Double tap to open output panel.</string>

As per coding guidelines, accessibility content descriptions must use the cd_* convention.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@resources/src/main/res/values/strings.xml` around lines 363 - 364, Rename the
content-description resources desc_build_status_output_panel_empty and
desc_build_status_output_panel to use the required cd_* prefix, then update
every Kotlin reference to those resource keys while preserving their existing
text and behavior.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@app/src/main/java/com/itsaky/androidide/ui/EditorBottomSheet.kt`:
- Around line 337-367: Update the accessibility handling in the output panel
delegate’s onInitializeAccessibilityNodeInfo and performAccessibilityAction
methods so ACTION_CLICK toggles based on isOutputPanelExpanded(): collapse when
expanded and expand otherwise. Use the corresponding localized open/close label
for the node action/content description, and remove any fixed gesture
instruction from the content description while preserving explicit ACTION_EXPAND
and ACTION_COLLAPSE behavior.

---

Nitpick comments:
In `@resources/src/main/res/values/strings.xml`:
- Around line 363-364: Rename the content-description resources
desc_build_status_output_panel_empty and desc_build_status_output_panel to use
the required cd_* prefix, then update every Kotlin reference to those resource
keys while preserving their existing text and behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 13ef7e77-d9f0-4e7a-a73e-3038154190b8

📥 Commits

Reviewing files that changed from the base of the PR and between 51b1605 and 364601a.

📒 Files selected for processing (2)
  • app/src/main/java/com/itsaky/androidide/ui/EditorBottomSheet.kt
  • resources/src/main/res/values/strings.xml

Comment thread app/src/main/java/com/itsaky/androidide/ui/EditorBottomSheet.kt Outdated
@makhlwf

makhlwf commented Jul 17, 2026

Copy link
Copy Markdown
Author

@coderabbitai autofix

@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

This command requires write access to the repository. Only users with write or admin permissions can trigger CodeRabbit to commit or create pull requests.

@makhlwf
makhlwf force-pushed the community/ADFA-4606-output-panel-accessibility branch from 364601a to af1a79a Compare July 17, 2026 09:56
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.

Accessibility: More responsive tap area for output panel

1 participant