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

Toast: Update Toaster to use internally consistent scoping #475

Merged
merged 5 commits into from
Jan 25, 2023

Conversation

daneah
Copy link
Member

@daneah daneah commented Jan 19, 2023

This change: (check at least one)

  • Adds a new feature
  • Fixes a bug
  • Improves maintainability
  • Improves documentation
  • Is a release activity

Is this a breaking change? (check one)

  • Yes
  • No

Is the: (complete all)

  • Title of this pull request clear, concise, and indicative of the issue number it addresses, if any?
  • Test suite(s) passing?
  • Code coverage maximal?
  • Changeset added?
  • Component status page up to date?

What does this change address?

Fixes #474

How does this change work?

Updates PharosToaster to use ScopedRegistryMixin and replace (most of) the DOM manipulation it was doing with declarative HTML rendering.

Additional context

This is a breaking change because it changes the detail value for the pharos-toast-close event. Because this event was externally visible, this is technically an API change. I don't, however, believe any internal consumers were listening for this event. Because we're gearing up for v13 and this isn't otherwise too pressing, let's just wait and include it there.

@daneah daneah requested a review from a team as a code owner January 19, 2023 03:56
@daneah daneah requested review from eslawski, SMQuazi and satya-achanta-venkata and removed request for a team January 19, 2023 03:56
@changeset-bot
Copy link

changeset-bot bot commented Jan 19, 2023

🦋 Changeset detected

Latest commit: d45f00f

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages
Name Type
@ithaka/pharos Major
@ithaka/pharos-site Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions
Copy link
Contributor

github-actions bot commented Jan 19, 2023

size-limit report 📦

Path Size
packages/pharos/lib/index.js 48.96 KB (+2.32% 🔺)

Comment on lines +36 to +62
type ToastID = string;
type ToastContent = string;
type ToastIndefinite = boolean;

interface ToastDetail {
id: ToastID;
content: ToastContent;
status: ToastStatus;
indefinite: ToastIndefinite;
}

interface ToastCreateDetail {
id?: ToastID;
content: ToastContent;
status?: ToastStatus;
indefinite?: ToastIndefinite;
}

interface ToastUpdateDetail {
id: ToastID;
content?: ToastContent;
status?: ToastStatus;
}

interface ToastCloseDetail {
id: ToastID;
}
Copy link
Member Author

Choose a reason for hiding this comment

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

Open to toning this down or suggestions on where to move these—we don't have an established pattern. I could see there being a good case for something like src/components/<comp>/pharos-<comp>.types.ts.

Copy link
Contributor

Choose a reason for hiding this comment

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

Personally like to keep types close to where they are used. We could consider moving them out into their own module when we need to use them elsewhere or wish to expose them to the consumer?

Comment on lines +22 to 34
/**
* pharos-toast-update event.
*
* @event pharos-toast-update
* @type {ToastUpdateDetail}
*/

/**
* pharos-toast-close event.
*
* @event pharos-toast-close
* @type {ToastCloseDetail}
*/
Copy link
Member Author

Choose a reason for hiding this comment

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

These were missing before.


/**
* pharos-toast-open event.
*
* @tag pharos-toaster
Copy link
Member Author

Choose a reason for hiding this comment

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

I think this was errantly placed here; I moved it to the component's JSDoc block below.

Comment on lines 150 to 161
// This is used to properly render any Pharos components present in the supplied content.
// unsafeHTML will render content in general, but does not appear to render components.
const toastContentElement = document.createElement('div');
toastContentElement.innerHTML = toast.content;

return html`<pharos-toast
id="${toast.id}"
status="${toast.status}"
?indefinite="${toast.indefinite}"
>
${toastContentElement}
</pharos-toast>`;
Copy link
Member Author

Choose a reason for hiding this comment

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

@Niznikr curious if you might understand more about why this is and if I've missed some trick here—the following did not work, failing to render e.g. a pharos-link present in toast.content:

    return html`<pharos-toast
      id="${toast.id}"
      status="${toast.status}"
      ?indefinite="${toast.indefinite}"
    >
      ${unsafeHTML(toast.content)}
    </pharos-toast>`;

Copy link
Collaborator

Choose a reason for hiding this comment

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

Not certain tbh. Believe I ran into this the first time around. The Lit Discord might be helpful.

Copy link
Member Author

Choose a reason for hiding this comment

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

Posed the question here.

Copy link
Member Author

Choose a reason for hiding this comment

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

Interestingly this doesn't happen in the Lit playground.

Copy link
Contributor

@chrisjbrown chrisjbrown Jan 24, 2023

Choose a reason for hiding this comment

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

is this because pharos-link isn't being registered anywhere in the story?

if I add PharosLink as a "local" definition in the PharosToaster. it does render correctly

export class PharosToaster extends ScopedRegistryMixin(PharosElement) {
  static elementDefinitions = {
    'pharos-toast': PharosToast,
    'pharos-link': PharosLink,
  };

** just did this to test to see if it would work, not suggesting this

Copy link
Member Author

Choose a reason for hiding this comment

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

is this because pharos-link isn't being registered anywhere in the story?

The components are all registered and available to all stories by nature of this module and its import.

if I add PharosLink as a "local" definition in the PharosToaster. it does render correctly

To be clear, it already does render correctly currently. The question is whether there's a way to avoid the DOM manipulation here while maintaining the functionality.

The crux being that the supplied content comes from the consumer, and the toast cannot predict what that content will be, and therefore does not want to be in the business of e.g. registering all possible components that could be in that content.

Copy link
Contributor

@chrisjbrown chrisjbrown Jan 24, 2023

Choose a reason for hiding this comment

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

in my testing i added this

export class PharosToaster extends ScopedRegistryMixin(PharosElement) {
  static elementDefinitions = {
    'pharos-toast': PharosToast,
    'pharos-link': PharosLink,
  };

as well as changed the rendering back to

return html`<pharos-toast
      id="${toast.id}"
      status="${toast.status}"
      ?indefinite="${toast.indefinite}"
    >
      ${unsafeHTML(toast.content)}
    </pharos-toast>`;

and i'm wondering why does this render correctly and not render correctly if we don't set pharos-link in elementDefinitions if this module is doing that registering anyway

Copy link
Member Author

Choose a reason for hiding this comment

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

I have been assuming this is due to the supplied content being put into the Toast's light DOM, but now that you prompt me to think more about it the Toast is inside the Toaster's shadow DOM so I am not sure exactly what I should be expecting. The scope seems like it would indeed be the Toaster's registry.

Copy link
Member Author

Choose a reason for hiding this comment

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

(Updated in the Discord discussion as well) @chrisjbrown and I tracked this down to the scoped registry behavior, which we now understand does not have inheritance—you either get the global registry without isolation, or you get your total isolation with only explicit components allowed. The DOM manipulation style is what allows us to straddle the two.

@daneah daneah changed the base branch from develop to release/13.0.0 January 20, 2023 00:47
@daneah daneah merged commit b9eedf6 into release/13.0.0 Jan 25, 2023
@daneah daneah deleted the fix/toast-scoping branch January 25, 2023 20:23
@daneah daneah added this to the @ithaka/pharos v13.0.0 milestone Aug 20, 2023
daneah added a commit that referenced this pull request Feb 21, 2024
* release/14.0.0:
  fix(chromatic): reintroduce build-storybook script (#656)
  Fix broken whitespace in Icon documentation (#616)
  chore(deps): bump msgpackr from 1.7.2 to 1.10.1 (#654)
  Loading Spinner, Sidenav, Docs: use is-on-background correctly (#657)
  a11y revamp: Pharos Buttons (#594)
  Sidenav: remove sidenav button (#478)
  Global: update onBackground to isOnBackground (#578)
  Remove `paint` value from contain properties (#614)
  Footer: Remove google translate (#586)
  fix: use public registry
  chore: update storybook deps
  fix: update incorrect imports
  Site: fix site build (#481)
  Toast: Update Toaster to use internally consistent scoping (#475)
  Tabs: move selected state management to pharos-tabs (#468)
  Infra: Bump TypeScript, add main exports (#472)
brentswisher added a commit that referenced this pull request Mar 7, 2024
* Infra: Bump TypeScript, add main exports (#472)

* feat: bump typscript, add main exports

* feat: use yarn registry

* feat: export style paths

* feat: comment mixins to test

* feat: export sass files

* feat: export react components

* feat: expose utils styles

* feat: sort out exports and file extensions

* feat: remove dupe export

* feat: use pattern to export styles

* feat: explicitly export pharos.scss

* chore: add changeset

* Tabs: move selected state management to pharos-tabs (#468)

* fix: tab event

* fix: update selected tab via parent

* fix(tabs): update property and attribute selectors

* fix(tabs): default to selected, then selected-tab, then 0

* fix(tabs): selected-tab already defaults to 0

* fix(tabs): select initial tab panel

* fix(tabs): only trigger event if tab not selected

* fix(tabs): update test

* fix(tabs): add pharos-tabs-tab-selected event

* fix(tabs): fire tab selected in updated)

* chore: add changeset

* Update packages/pharos/src/components/tabs/pharos-tabs.ts

Co-authored-by: Dane Hillard <github@danehillard.com>

Co-authored-by: Mike Iden <mike.iden@ithaka.org>
Co-authored-by: Dane Hillard <github@danehillard.com>

* Toast: Update Toaster to use internally consistent scoping (#475)

* fix(storybook): fix updateable toast stories

* fix(toast): update to use internal scoping

* chore: add changeset

* docs: fix casing of function name in comment

* docs: update code comment to reflect scoped registry behavior

* Site: fix site build (#481)

* fix(pharos-site): revert pharos-site changes for typescript

* fix(pharos-site): leave exports in place

* fix(pharos-site): add end line

* fix: update incorrect imports

* chore: update storybook deps

* fix: use public registry

* Footer: Remove google translate (#586)

* feat(footer): remove deprecated Google Translate widget

* chore: add changeset

* Remove `paint` value from contain properties (#614)

* fix: remove `paint` value from contain properties

Of all the `contain` property values, `paint` is the most noticeably
problematic when overused because it can bite people by cropping off the
content they intended to render within a component that has `paint`
containment. For components that rely on composition at the consumer,
this has caused issues more than a few times.

* chore: add changeset

* Global: update onBackground to isOnBackground (#578)

* feat(global): update onBackground attribute to isOnBackground

* feat(global): update tokens import for pharos-site/.../color

* feat(global): revert pharos-site onBackground changes

* feat(global): remove .js on token import

* feat(global): update on-background to is-on-background

* feat(global): remove is-on-background from pharos-site

* feat(global): change onBackground to isOnBackground

* fix(global): change is-on-background to on-background in tokens

* Sidenav: remove sidenav button (#478)

* refactor(sidenav): remove sidenav button

* refactor(sidenav-button): remove sus comma

* refactor(sidenav-button): remove test for sidenav button

* fix(sidenav): remove automatic sliding behavior

* feat(sidenav): render button conditionally and add unit tests

* refactor(sidenav-button): add changeset

* Remove console log statement

Co-authored-by: Dane Hillard <github@danehillard.com>

* fix(sidenav): fix storybook

---------

Co-authored-by: Evan Shoup <evan.shoup@ithaka.org>
Co-authored-by: Jialin He <jialin.he@ithaka.org>
Co-authored-by: Jialin He <38861633+jialin-he@users.noreply.github.com>
Co-authored-by: Evan Shoup <112417900+shoupeva-ithaka@users.noreply.github.com>
Co-authored-by: Dane Hillard <github@danehillard.com>

* a11y revamp: Pharos Buttons (#594)

* feat(button): add ability to pass down ARIA attributes

* feat(button): add reference to new button types

Including the ExpandedState type reference for
other components that consume the button. These
threw errors when initially compiling so there
may be other such commponents that eventually
need a similar update.

* feat(button): attempt at updating storybook example

* feat(button): remove test code for popupstate

* feat(button): add aria-haspopup

* chore(changeset): add changeset

* feat(button): update label attr to a11y-label

* feat(button): replace property for ButtonVariant

* feat(button): allow backwards compatibility

Gives warning if using deprecated attributes, updating aria-pressed

* feat(button): update storybook aria-pressed

* feat(button): remove fallback from major release

* feat(button): add a11y attributes typing

* test(button): add tests for new aria attributes

* feat(button): add ability to pass down ARIA attributes

* feat(button): add reference to new button types

Including the ExpandedState type reference for
other components that consume the button. These
threw errors when initially compiling so there
may be other such commponents that eventually
need a similar update.

* feat(button): attempt at updating storybook example

* feat(button): remove test code for popupstate

* feat(button): add aria-haspopup

* chore(changeset): add changeset

* feat(button): update label attr to a11y-label

* feat(button): replace property for ButtonVariant

* feat(button): allow backwards compatibility

Gives warning if using deprecated attributes, updating aria-pressed

* feat(button): update storybook aria-pressed

* feat(button): remove fallback from major release

* feat(button): add a11y attributes typing

* test(button): add tests for new aria attributes

* fix(a11y attributes): update AriaHiddenState name

* fix(button): remove ts ignore

* feat(button): remove backwards compat

* feat(button): add aria-disabled back

* test(button): add a11y-label to new components

* fix: remove sidenav button from bad merge

* test(button): fix aria-pressed in toggle buttons

* Update packages/pharos/src/components/sidenav/PharosSidenav.react.stories.jsx

Co-authored-by: Dane Hillard <github@danehillard.com>

* Update packages/pharos/src/components/toast/pharos-toast-button.ts

Co-authored-by: Dane Hillard <github@danehillard.com>

* fix(btn): remove aria-description

---------

Co-authored-by: Dane Hillard <github@danehillard.com>

* Loading Spinner, Sidenav, Docs: use is-on-background correctly (#657)

* fix(loading-spinner, sidenav, docs): use is-on-background correctly

* chore: add changeset

* fix: address linting issues

* chore(deps): bump msgpackr from 1.7.2 to 1.10.1 (#654)

Bumps [msgpackr](https://github.com/kriszyp/msgpackr) from 1.7.2 to 1.10.1.
- [Release notes](https://github.com/kriszyp/msgpackr/releases)
- [Commits](https://github.com/kriszyp/msgpackr/commits/v1.10.1)

---
updated-dependencies:
- dependency-name: msgpackr
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix broken whitespace in Icon documentation (#616)

* Update icon.docs.mdx

added empty space to fix run on from "an" "aria"

* Update packages/pharos-site/static/guidelines/icon.docs.mdx

---------

Co-authored-by: Dane Hillard <github@danehillard.com>

* fix(chromatic): reintroduce build-storybook script (#656)

* Remove old onBackground attribute from sidenav storybook story (#671)

* fix(sidenav): remove onBackground attribute

When merging the latest develop into this release branch the sidenav
component ended up with both the old onBackground and new isOnBackground
versions of the attribute in its storybook story. This removes the old
version so it is correct.

* chore: add changeset

* Update link, dropdown-menu-nav, and popover to use a11y-label - Breaking (#676)

* feat: add & update a11y-label, remove label

* feat: update remaining components to use a11y-label

* chore: add changeset

* fix: update a11yLabel references

* fix: update a11y-label descriptions for each component

* fix(popover): clean up the aria-labelledby attribute

* fix(link): update SB to pass in a11yLabel values (#677)

* fix(link): update SB to pass in a11yLabel values

* chore: add changeset

* DropdownMenu: add nav category to replace links (#479)

* refactor(dropdown-menu): add dropdownmenunavheading

* refactor(dropdown-menu): rename nav heading to nav category

* refactor(dropdown-menu): add slot name

* refactor(dropdown-menu): correctly name component

* refactor(dropdown-menu): remove hrefs from categories

* refactor(dropdown-menu): test stories component rename

* refactor(dropdown-menu): add import

* chore: merge branch release-v13

* Revert "chore: merge branch release-v13"

This reverts commit 617d9be.

* chore: add scoping

* fix: init storybook category

* fix: attribute naming

* fix: add is-active property/attribute to category

Also, remove pharos-icon from nav-link as it is no longer necessary

* refactor: move aria attributes to button

* refactor: style dropdown menu button

* refactor: add slot category to header test

* refactor: remove aria attributes from container

* refactor: add scoping

* refactor: add category slot

* refactor(dropdown-menu): check has hover over attribute

* fix: add nothing value from lit

* fix: remove unnecessary href from DropdownMenuNavCategory

---------

Co-authored-by: Dane Hillard <github@danehillard.com>
Co-authored-by: Mat Harris <mat.harris@ithaka.org>

* Require icon accessibility attributes (#679)

* feat(icon): throw error for inaccessible icons

Previously, the a11y-title and a11y-hiddden attributes were
added and the description attribute was deprecated. This change removes
the description attribute and throws an error if an icon is used without
proper accessibility attributes.

* fix: remove deprecated attribute from tests

There was a default description of "" for icons but now that
has been removed.

* fix(dropdown-menu-nav): add a11y-hidden to icon

Because there will always be a category in the button text
and the icon is purely decorative, it should be hidden from
screen readers.

* hotfix(icon): fix typo in test description

Co-authored-by: Mat Harris <mat.harris@ithaka.org>

* chore: add changeset

---------

Co-authored-by: Mat Harris <mat.harris@ithaka.org>

* Combobox: Add default elevation (#683)

* feat(combobox): add default elevation

Adds elevation token level 3 to the combobox component.

* feat(combobox): remove border on combobox list

* chore: update changeset

---------

Co-authored-by: Markell Torres <markell.torres@ithaka.org>

* Modal: Add default elevation (#681)

* feat(modal): add elevation token

Adds elevation token level 5 to the modal component.

* chore: add changeset

* feat(modal-elevation): remove border and move elevation to modal__content class

---------

Co-authored-by: Markell Torres <markell.torres@ithaka.org>

* feat(popover): add elevation token (#682)

Adds elevation token level 4 to the popover component.

* Dropdown Menu: Add default elevation (#684)

* feat(dropdown-menu): add elevation token

Adds a default elevation to the dropdown-menu set
to elevation level 3.

* feat(dropdown-menu): remove border

With the new elevation styles, the border is no longer needed.

* Tabs: Remove overflow-y from pharos-tabs' tab__panels class (#690)

* style(tabs): remove overflow-y

* docs(tabs): add changeset

* Add ability to use a11y-disabled and maintain default disabled styling (#691)

* feat(btn): a11y-disabled remove disabled attr, checks to see if aria-disabled is being used and if so removes the disabled attribute

* chore: add changeset

* Update Storybook stories with new sidenav display logic (#696)

* fix(sidenav): update react report storybook example

* fix(sidenav): update web component reports storybook example

Update the sidenav in the Reports example to handle showing/hiding at
a certain window size. This used to be the default behaviors of the
sidenav before the v14 release`

* fix(layout): default sidenav layouts to open

Because the sidnav no longer contains the logic to open and close,
the layout stories were broken. Now, the default state is open, although
the mobile experience could probably be improved.

* fix(sidenav): update storybook mobile breakpoint to match wc version

* chore: add changeset

* fix(sidenav): default stories to use close button

Because the default story a hidden the sidenav, the close button should
be enabled by default.

* fix(sidenav): update import syntax

* refactor: update sidenav stories to use a ResizeObserver

* chore: trigger new build

* chore(deps-dev): bump vite from 4.3.9 to 4.5.2 (#672)

Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.3.9 to 4.5.2.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v4.5.2/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v4.5.2/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* DropdownMenuNav: Add pharos-elevation-level-3 token (#670)

* fix(dropdown-menu-nav): add elevation 3 to dropdown-menu-nav

* add changeset

* fix(dropdown-menu): add elevation 3 to dropdown-menu

* Update link, dropdown-menu-nav, and popover to use a11y-label (#675)

* chore: merge upstream

Squashed commit of the following:

* feat: update label to a11y-label

Added the a11y-label attribute to replace
the label attribute when needing to
update a components aria-label

* feat: update references from label to a11y-label

For components and tests that referenced the
label attribute this updates those to now use
the a11y-label attribute

* chore: add changeset

* fix: update a11y-label descriptions for each component

* Fix the all-contributors badge (#680)

* fix(docs): update all-contributors badge to show proper count

The all-contributors badge was stuck at a count of 20, as we seem to
have been using a hard-coded image. This updates the badge to a proper
dynamic badge with the right count.

* chore(docs): add color parameter to badge

* Icon: Add "add to folder" icon (#678)

* feat(icon): add add to folder icon

* docs(icon): update change log for addin add to folder icon

* Update .changeset/good-readers-lay.md

---------

Co-authored-by: Dane Hillard <github@danehillard.com>

* chore: version packages (#685)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* chore(deps): bump ip from 1.1.8 to 1.1.9 (#687)

Bumps [ip](https://github.com/indutny/node-ip) from 1.1.8 to 1.1.9.
- [Commits](indutny/node-ip@v1.1.8...v1.1.9)

---
updated-dependencies:
- dependency-name: ip
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix(icon): add media query style for WHCM (#689)

* fix(icon): add media query style for Windows High Contrast Mode

* chore: add changeset

* chore(deps): bump es5-ext from 0.10.62 to 0.10.64 (#692)

Bumps [es5-ext](https://github.com/medikoo/es5-ext) from 0.10.62 to 0.10.64.
- [Release notes](https://github.com/medikoo/es5-ext/releases)
- [Changelog](https://github.com/medikoo/es5-ext/blob/main/CHANGELOG.md)
- [Commits](medikoo/es5-ext@v0.10.62...v0.10.64)

---
updated-dependencies:
- dependency-name: es5-ext
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): upgrade to Yarn 4 (#694)

* chore(deps): upgrade to Yarn 4

Some recent ecosystem changes no longer support Yarn v1 moving forward.
Coupled with a potential desire to use Yarn PnP / Zero installs (#635),
this upgrade puts us in good shape to keep moving.

* fix(infra): update Yarn cache dir in GitHub Actions

* fix(infra): update Yarn cache dir in GitHub Actions

* fix(infra): update Yarn installation flags

* fix: prevent report example from being tree-shaken

Without an actual export of the report example, it was being tree-shaken
when storybook was being built.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Dane Hillard <github@danehillard.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Markell Torres <54967638+mtorres3@users.noreply.github.com>
Co-authored-by: Mat Harris <mat.harris@ithaka.org>
Co-authored-by: mariadevadoss <132926833+mariadevadoss@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* hotfix: update sidenav button to use a11yLabel

Co-authored-by: Mat Harris <mat.harris@ithaka.org>

* Require an accessible label be present for icon-only buttons (#699)

* feat(button): require a11y-label for icon buttons

Because the icon in an icon button is set to aria-hidden="true", it is
not visible to screen readers. This change requires an a11y-label for
icon buttons to ensure that the button is accessible.

* fix: unit test buttons were inaccessible

* fix: add accessible label to icon button group stories

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Christopher Brown <christopher.brown@ithaka.org>
Co-authored-by: Mike Iden <mike.iden@ithaka.org>
Co-authored-by: Dane Hillard <github@danehillard.com>
Co-authored-by: Markell Torres <markell.torres@ithaka.org>
Co-authored-by: Satya Achanta <satya.achantavenkata@ithaka.org>
Co-authored-by: Markell Torres <54967638+mtorres3@users.noreply.github.com>
Co-authored-by: Evan Shoup <evan.shoup@ithaka.org>
Co-authored-by: Jialin He <jialin.he@ithaka.org>
Co-authored-by: Jialin He <38861633+jialin-he@users.noreply.github.com>
Co-authored-by: Evan Shoup <112417900+shoupeva-ithaka@users.noreply.github.com>
Co-authored-by: Mat Harris <mat.harris@ithaka.org>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: david-corneail <104939119+david-corneail@users.noreply.github.com>
Co-authored-by: Yanni Mouzakis <64924035+ymouzakis@users.noreply.github.com>
Co-authored-by: mariadevadoss <132926833+mariadevadoss@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
@brentswisher brentswisher mentioned this pull request Mar 7, 2024
daneah added a commit that referenced this pull request Mar 14, 2024
* release/13.0.0:
  Remove `paint` value from contain properties (#614)
  Footer: Remove google translate (#586)
  fix: use public registry
  chore: update storybook deps
  fix: update incorrect imports
  Site: fix site build (#481)
  Toast: Update Toaster to use internally consistent scoping (#475)
  Tabs: move selected state management to pharos-tabs (#468)
  Infra: Bump TypeScript, add main exports (#472)
@github-actions github-actions bot mentioned this pull request Mar 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

PharosToaster doesn't register PharosToast in the scope of its shadow root
4 participants