Skip to content

Conversation

brandyscarney
Copy link
Member

@brandyscarney brandyscarney commented Feb 12, 2024

Issue number: internal


What is the current behavior?

In Ionic Framework v7, we simplified the select syntax so that it was no longer required to be placed inside of an ion-item. We maintained backwards compatibility by adding a legacy property which allowed it to continue to be styled properly when written in the following way:

<ion-item>
  <ion-label>Label</ion-label>
  <ion-select></ion-select>
</ion-item>

While this was supported in v7, console warnings were logged to notify developers that they needed to update this syntax for the best accessibility experience.

What is the new behavior?

  • Removes the legacy property and support for the legacy syntax. Developers should follow the migration guide in the select documentation to update their apps. The new syntax requires a label or aria-label on ion-select:
    <ion-item>
      <ion-select label="Label"></ion-select>
    </ion-item>
  • Removes the legacy tests under under select/test/legacy/ and all related screenshots
  • Removes the select usage from item/test/disabled, item/test/legacy/alignment, and item/test/legacy/disabled and all related screenshots if the test was removed

Does this introduce a breaking change?

  • Yes
  • No
  1. Developers have had console warnings when using the legacy syntax since the v7 release. The migration guide for the new select syntax is outlined in the Select documentation.
  2. This change has been documented in the Breaking Changes document with a link to the migration guide.

BREAKING CHANGE:

The legacy property and support for the legacy syntax, which involved placing an ion-select inside of an ion-item with an ion-label, have been removed from select. For more information on migrating from the legacy select syntax, refer to the Select documentation.

@github-actions github-actions bot added package: core @ionic/core package package: angular @ionic/angular package package: vue @ionic/vue package labels Feb 12, 2024
@brandyscarney brandyscarney changed the base branch from feature-8.0 to FW-2764-legacy-removal February 12, 2024 21:44
@brandyscarney brandyscarney marked this pull request as ready for review February 12, 2024 21:46
@brandyscarney brandyscarney requested a review from a team as a code owner February 12, 2024 21:46
@brandyscarney brandyscarney requested review from averyjohnston and removed request for a team February 12, 2024 21:46
Base automatically changed from FW-2764-legacy-removal to FW-2764 February 13, 2024 16:54
Base automatically changed from FW-2764 to feature-8.0 February 13, 2024 17:43
@brandyscarney brandyscarney merged commit 6bd446f into feature-8.0 Feb 13, 2024
@brandyscarney brandyscarney deleted the FW-3194 branch February 13, 2024 18:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

package: angular @ionic/angular package package: core @ionic/core package package: vue @ionic/vue package

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants