Skip to content

DatePicker uses incorrect aria attributes causing accessibility violations #8181

@geiregjo

Description

@geiregjo

Describe the bug

Storybook’s accessibility addon identifies problems with the PrimeVue Password component. When used inline, the component does not assign a role to its panel section, even though the section defines an aria-label. Because aria-label must always be associated with an explicit role, this omission results in an accessibility violation. Role application seems most applicable?

Another issue arises with the day elements, which set the aria-selected attribute without specifying a corresponding role. While assigning an option role initially seemed appropriate, that approach requires the parent element to have either a group or listbox role, both of which introduce further violations. The effective solution is to assign role="gridcell" to the daycell section. This aligns with the existing hierarchy, as the parent elements already use role="grid". Note that I also added role="row" to be more correct. The final step is to move the aria-selected attribute from the day section to the daycell section, ensuring it resides on an element that correctly defines a role.

Pull Request Link

#8180

Reason for not contributing a PR

  • Lack of time
  • Unsure how to implement the fix/feature
  • Difficulty understanding the codebase
  • Other

Other Reason

No response

Reproducer

https://stackblitz.com/edit/primevue-4-vite-issue-template-ypchq8br?file=src%2FApp.vue

Environment

Not applicable.

Vue version

3.5.20

PrimeVue version

4.3.9

Node version

22.x

Browser(s)

Not applicable.

Steps to reproduce the behavior

Not applicable.

Expected behavior

Not applicable.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Status: Needs TriageIssue will be reviewed by Core Team and a relevant label will be added as soon as possible

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions