Skip to content

Accessibility#135

Open
Sobyt483 wants to merge 3 commits into
mainfrom
accessibility
Open

Accessibility#135
Sobyt483 wants to merge 3 commits into
mainfrom
accessibility

Conversation

@Sobyt483
Copy link
Copy Markdown
Contributor

@Sobyt483 Sobyt483 commented May 21, 2026

Summary by CodeRabbit

  • New Features

    • Added visual feedback when copying values to clipboard—displays confirmation before resetting.
  • Bug Fixes

    • Enhanced keyboard navigation: service card now responds to Enter key.
    • Improved accessibility labels across dashboard, cards, tables, and dialogs for screen readers.
    • Auto-focus on "Add Card" button when entering edit mode for better workflow.
    • Added descriptive tooltips to table edit and delete actions.

Review Change Stack

Sobyt483 added 2 commits May 21, 2026 17:24
Signed-off-by: Sobyt483 <andrianingomel@gmail.com>
Signed-off-by: Sobyt483 <andrianingomel@gmail.com>
@Sobyt483 Sobyt483 requested review from a team as code owners May 21, 2026 13:39
@Sobyt483 Sobyt483 self-assigned this May 21, 2026
@Sobyt483 Sobyt483 added the enhancement New feature or request label May 21, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 21, 2026

Warning

Rate limit exceeded

@Sobyt483 has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 55 minutes and 9 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: f8f6c1ff-57f9-4aea-9df1-b398189712ca

📥 Commits

Reviewing files that changed from the base of the PR and between b496e1e and df0d348.

📒 Files selected for processing (4)
  • projects/ngx/declarative-ui/dashboard/dashboard/dashboard.component.html
  • projects/ngx/declarative-ui/table-card/declarative-table-card.component.html
  • projects/ngx/declarative-ui/table/declarative-table/declarative-table.component.html
  • projects/ngx/declarative-ui/value-cell/value-cell.component.html
📝 Walkthrough

Walkthrough

This PR enhances accessibility across the dashboard, table, and value cell components by adding accessible names to interactive elements, implementing keyboard support for card interactions, auto-focusing the "Add Card" button during edit mode, and providing visual feedback for clipboard copy operations through a new signal-based state tracker.

Changes

Accessibility and interaction enhancements

Layer / File(s) Summary
Keyboard interaction and auto-focus management
projects/ngx/cards/visited-service-card/visited-service-card.component.html, projects/ngx/declarative-ui/dashboard/dashboard/dashboard.component.ts
Visited service card now emits cardClick on Enter-key press alongside mouse clicks. Dashboard component injects an Injector and uses afterNextRender to focus the "Add Card" button after edit mode is enabled via a new viewChild reference.
Dashboard toolbar and card accessible names
projects/ngx/declarative-ui/dashboard/dashboard/dashboard.component.html, projects/ngx/declarative-ui/dashboard/card/dashboard-card.component.html, projects/ngx/declarative-ui/dashboard/section/dashboard-section.component.html
Dashboard toolbar buttons ("Add Card", actions menu, custom actions, "Edit View") now include computed accessibleName bindings with sensible fallbacks. Remove buttons for cards and sections gain accessible names derived from card/section metadata.
Table card buttons, dialogs, and action tooltips
projects/ngx/declarative-ui/table-card/declarative-table-card.component.html, projects/ngx/declarative-ui/table-card/declarative-table-card.component.ts
Search and create buttons gain accessibleName bindings with defaults. Create, edit, and delete dialogs gain accessibleName from configured titles. Edit and delete action button definitions add explicit tooltip values ("Edit" and "Delete").
Value cell accessible names and copy success feedback
projects/ngx/declarative-ui/value-cell/value-cell.component.html, projects/ngx/declarative-ui/value-cell/value-cell.component.ts
Secret-value toggle, button rendering, and copy-value icon gain context-aware accessibleName bindings. New copySuccess signal tracks clipboard copy feedback, switching copy icon display between "Copy value" and "Copied" states for 2 seconds after successful write.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Suggested labels

enhancement

Suggested reviewers

  • gkrajniak

Poem

🐰 Hop along the keyboard path,
Each button whispers what it does,
Copy feedback shines so bright,
A checkmark dance that feels just right,
Accessibility blossoms in the light! ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'Accessibility' is vague and generic; while it relates to changes throughout the PR, it doesn't specify what accessibility improvements were made or which components are affected. Consider a more descriptive title such as 'Add accessible names and keyboard support to dashboard and card components' to clearly communicate the main improvements.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch accessibility

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 and usage tips.

@Sobyt483 Sobyt483 moved this to In review in OpenMFP Development May 21, 2026
@Sobyt483 Sobyt483 linked an issue May 21, 2026 that may be closed by this pull request
6 tasks
Signed-off-by: Sobyt483 <andrianingomel@gmail.com>
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 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 `@projects/ngx/cards/visited-service-card/visited-service-card.component.html`:
- Around line 3-6: The element is given button semantics but only activates on
Enter; add handling for the Space key so keyboard users get expected button
behavior by invoking the same action and preventing default scrolling. Update
the template for VisitedServiceCardComponent to handle keydown.space the same as
keydown.enter (call cardClick.emit(path())) and call $event.preventDefault() to
stop page scroll; alternatively implement a component method (e.g.,
onCardKeydown(event)) that checks event.code or event.key for ' ' / 'Space' and
'Enter', prevents default for Space, and emits via cardClick.emit(path()) so
both keys activate the control.

In `@projects/ngx/declarative-ui/value-cell/value-cell.component.ts`:
- Around line 105-110: The copyValue clipboard call only handles the success
path; update the navigator.clipboard.writeText(this.value() || '') call inside
copyValue to handle rejections (e.g., add a .catch or use try/await with
try/catch) so copySuccess is reset on failure and errors are surfaced (set
this.copySuccess.set(false) in the failure branch and optionally log the error).
Locate the clipboard invocation in copyValue and ensure both success and failure
paths explicitly update the copySuccess signal.
🪄 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: defaults

Review profile: CHILL

Plan: Pro

Run ID: b00e6410-1673-4a52-9890-be7ecb8a371b

📥 Commits

Reviewing files that changed from the base of the PR and between 09e2942 and b496e1e.

📒 Files selected for processing (9)
  • projects/ngx/cards/visited-service-card/visited-service-card.component.html
  • projects/ngx/declarative-ui/dashboard/card/dashboard-card.component.html
  • projects/ngx/declarative-ui/dashboard/dashboard/dashboard.component.html
  • projects/ngx/declarative-ui/dashboard/dashboard/dashboard.component.ts
  • projects/ngx/declarative-ui/dashboard/section/dashboard-section.component.html
  • projects/ngx/declarative-ui/table-card/declarative-table-card.component.html
  • projects/ngx/declarative-ui/table-card/declarative-table-card.component.ts
  • projects/ngx/declarative-ui/value-cell/value-cell.component.html
  • projects/ngx/declarative-ui/value-cell/value-cell.component.ts

Comment thread projects/ngx/declarative-ui/value-cell/value-cell.component.ts
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

Status: In review

Development

Successfully merging this pull request may close these issues.

🔧 Dashboard Productize: Accessibility

1 participant