Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[docs] Create a handy dandy version switcher #7298

Merged
merged 9 commits into from
Oct 23, 2023

Conversation

cee-chen
Copy link
Member

@cee-chen cee-chen commented Oct 19, 2023

Summary

closes #566

screencap

QA

General checklist

  • Browser QA
    • Checked in both light and dark modes
    • Checked in mobile
    • Checked in Chrome, Safari, Edge, and Firefox
    • Checked for accessibility including keyboard-only and screenreader modes
  • Docs site QA
    - [ ] Added documentation
    - [ ] Props have proper autodocs (using @default if default values are missing) and playground toggles
    - [ ] Checked Code Sandbox works for any docs examples
  • Code quality checklist
  • Release checklist
    • A changelog entry exists and is marked appropriately.
      - [ ] If applicable, added the breaking change issue label (and filled out the breaking change checklist)
  • Designer checklist - N/A

- for some reason they're rendering a full scrollbar and cutting into the item width when FF doesn't
@cee-chen
Copy link
Member Author

cee-chen commented Oct 19, 2023

@1Copenut Any chance I can have you take a quick gander at the SR accessibility of this before I move any further with it? https://eui.elastic.co/pr_7298/ (click the version badge in the top left hand corner)

The list group component is using <ul> and <li> under the hood but because we're using virtualization, the number count is off (and doesn't seem to improve if I add aria-setsize to it 😕). Also on Safari+VO the list semantics seem to get skipped entirely in favor of just announcing links? Am I not using VO correctly?

I debated using EuiSelectable for this component (which would add the ability to search, which could be nice) but I'm hesitating because I really want that extra button that sends users to the GH release notes (vs the deployed site), and I'm not sure the selectable component would allow for that.

@cee-chen cee-chen added the documentation Issues or PRs that only affect documentation - will not need changelog entries label Oct 19, 2023
@JasonStoltz
Copy link
Member

Heck yeah @cee-chen! We've been long overdue for this. Thank you for taking the initiative.

Copy link
Contributor

@1Copenut 1Copenut left a comment

Choose a reason for hiding this comment

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

Thank you for putting this together @cee-chen. I added a couple of code suggestions for screen readers. Holler at me if you want to discuss them. I'll retest when new versions are up in EUI preview links.

@cee-chen
Copy link
Member Author

cee-chen commented Oct 19, 2023

Thanks Trevor, I'll push up some SR copy improvements here in a bit! Just curious, were you able to get the <ul> <li> semantic implications working or do you think the SR experience was sufficient without it?

cee-chen and others added 2 commits October 19, 2023 10:27
Co-authored-by: Trevor Pierce <[email protected]>
@cee-chen cee-chen marked this pull request as ready for review October 20, 2023 01:29
@cee-chen cee-chen requested a review from a team as a code owner October 20, 2023 01:29
@kibanamachine
Copy link

Preview staging links for this PR:

@elasticmachine
Copy link
Collaborator

💚 Build Succeeded

History

@1Copenut
Copy link
Contributor

Just curious, were you able to get the <ul> <li> semantic implications working or do you think the SR experience was sufficient without it?

I wasn't able to get these working reliably with Safari. I think the issue is related to Safari removing list and listitem roles from lists that override default styling. I'm pulling from Scott O'Hara's article "Fixing Lists" for this reference.

I mocked a quick demo that has two lists, one with roles and one without for control, and two more lists with links, again one with roles and one without. The links in list items do not announce as list items even with roles applied, so I think the experience is as good as it's going to be in Safari without some additional discovery.

Copy link
Contributor

@1Copenut 1Copenut left a comment

Choose a reason for hiding this comment

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

LGTM! I ran this back through the big three screen readers. NVDA is reading the versions as we'd like now, and NVDA and JAWS honor the list items perfectly. I added a separate quote comment about Safari + VO findings, and how we're probably not going to get that experience as perfect as we'd like without more work.

@cee-chen
Copy link
Member Author

Super interesting to hear that the list behavior works in JAWS/NVDA but not VO! I'll remember that for the future!

@cee-chen cee-chen merged commit afcdac4 into elastic:main Oct 23, 2023
8 checks passed
@cee-chen cee-chen deleted the version-switcher branch October 23, 2023 19:22
cee-chen added a commit to elastic/kibana that referenced this pull request Nov 3, 2023
`v89.1.0`⏩`v90.0.0`

The majority of changes in this PR come from:

- **EuiContextMenu** being converted to Emotion
(elastic/eui#7312). If your usage of
`EuiContextMenu` was significantly affected, we recommend pulling down
this PR and QAing it locally.

- `defaultProps` being removed from some very widespread components,
particularly **EuiButton**, in anticipation of React's upcoming
deprecation.
(elastic/eui@b7dc9b4)
**NOTE**: This only affected Enzyme snapshots, and did not affect
production behavior.

[Commits](https://github.com/elastic/kibana/pull/170179/commits) have
been broken up by component changes as well as types of changes.

---

## [`90.0.0`](https://github.com/elastic/eui/tree/v90.0.0)

- Updated the `eventColor` prop on `EuiCommentEvent` to apply the color
to the entire comment header.
([#7288](elastic/eui#7288))
- Updated `EuiBasicTable` and `EuiInMemoryTable` to support a new
controlled selection API: `selection.selected`
([#7321](elastic/eui#7321))

**Bug fixes**

- Fixed controlled `EuiFieldNumbers` not correctly updating native
validity state ([#7291](elastic/eui#7291))
- Fixed `EuiListGroupItem` to pass `style` props to the wrapping `<li>`
element alongside `className` and `css`. All other props will be passed
to the underlying content.
([#7298](elastic/eui#7298))
- Fixed `EuiListGroupItem`'s non-transitioned transform on hover/focus
([#7298](elastic/eui#7298))
- Fixed `EuiDataGrid`s with `gridStyle.stripes` sometimes showing buggy
row striping after being sorted
([#7301](elastic/eui#7301))
- Fixed `EuiDataGrid`'s `gridStyle.rowClasses` API to not conflict with
`gridStyle.stripes` if dynamically updated
([#7301](elastic/eui#7301))
- Fixed `EuiDataGrid`'s `gridStyle.rowClasses` API to support multiple
space-separated classes
([#7301](elastic/eui#7301))
- Fixed `EuiInputPopover` not calling `onPanelResize` callback prop
([#7305](elastic/eui#7305))
- Fixed `EuiDualRange` incorrectly positioning highlights when rendered
with `showInput="inputWithPopover"`
([#7305](elastic/eui#7305))
- Fixed `EuiTabs` incorrectly wrapping text when it should instead
either scroll or truncate
([#7309](elastic/eui#7309))
- `EuiContextMenu` now renders text colors correctly when used within an
`EuiBottomBar` ([#7312](elastic/eui#7312))
- Fixed the width of `EuiSuperDatePicker`'s Absolute date picker
([#7313](elastic/eui#7313))
- Fixed `EuiDataGrid` cells visually cutting off overflowing content a
little too quickly ([#7320](elastic/eui#7320))

**Deprecations**

- Deprecated `EuiBasicTable` and `EuiInMemoryTable`'s ref `setSelection`
API. Use the new `selection.selected` API instead.
([#7321](elastic/eui#7321))

**Breaking changes**

- Removed `EuiPageTemplate_Deprecated`, `EuiPageSideBar_Deprecated`, and
`EuiPageContent*_Deprecated`
([#7265](elastic/eui#7265))
- Removed the `ghost` color option from `EuiButton`, `EuiButtonEmpty`,
and `EuiButtonIcon`. Use an `<EuiThemeProvider colorMode="dark">`
wrapper and `color="text"` instead.
([#7296](elastic/eui#7296))

**Dependency updates**

- Updated `refractor` to v3.6.0
([#7127](elastic/eui#7127))
- Updated `rehype-raw` to v5.1.0
([#7127](elastic/eui#7127))
- Updated `vfile` to v4.2.1
([#7127](elastic/eui#7127))

**Accessibility**

- `EuiContextMenu` now correctly respects reduced motion preferences
([#7312](elastic/eui#7312))
- `EuiAccordion`s no longer attempt to focus child content when the
accordion is externally opened via `forceState`, but will continue to
focus expanded content when users click the toggle button.
([#7314](elastic/eui#7314))

**CSS-in-JS conversions**

- Converted `EuiContextMenu`, `EuiContextMenuPanel`, and
`EuiContextMenuItem` to Emotion; Removed `$euiContextMenuWidth`
([#7312](elastic/eui#7312))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Issues or PRs that only affect documentation - will not need changelog entries
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Allow switching between different versions on https://elastic.github.io/eui/
5 participants