patternfly / patternfly/patternfly-react

[Popover] - allow its sparing usage for interactive content

Open
#11,746 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Demo Stale
Dominant language
TypeScript
Stars
862
Forks
392
Avg merge
4d 8h
Merged PRs (30d)
9

Description

Is this a new component or an extension of an existing one?

And extension/adjustment of Popover

Describe the feature

Allow interactive content for using it in scenarios where other components such as Modal, Menu, or Dropdown, don’t quite fit the use case.

As an example, see the screenshots below of rough prototypes for an interface that allows users quick access to available Wi-Fi networks and keyboard layout from a top toolbar.

One concern I have is that the Popover component internally uses the aria-describedby attribute, which I believe makes the interactive content inaccessible. From my limited understanding of accessibility, and after reviewing MDN's documentation, it seems that using aria-details might help.

The aria-describedby property is appropriate when the associated content contains plain text. If the content is extensive, contains useful semantics, or has a complex structure requiring user navigation, use aria-details instead. aria-details allows assistive technology users to visit the associated structured content and provides additional navigation commands, making it easier to understand the structure, or experience the information in smaller pieces.

https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Attributes/aria-describedby

Are there visuals for this feature? If applicable, please include examples for each state and for varying widths

See these rough prototypes

Available Wi-Fi networks Localization options
Available Wi-Fi networks in a Popover prototype Localization options in a Popover prototype

Any other information?

Originally posted as a discussion in #11745, but later realized that a feature request issue might be a better place for it.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in packages/react-core/src/components/Popover/Popover.tsx, especially the aria-describedby usage around line 456, and review the Popover documentation and linked ARIA guidance. Determine the accessibility requirements for interactive content and define completion as Popover supporting the requested use cases without making its content inaccessible.

Written by the indexing model from the issue text.

Assessment

Tech stack
react, typescript
Domain
accessibility, frontend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.