Skip to content

[Shipping Labels] M4 accessibility layout issues #15783

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

Open
wants to merge 10 commits into
base: trunk
Choose a base branch
from

Conversation

RafaelKayumov
Copy link
Contributor

@RafaelKayumov RafaelKayumov commented Jun 19, 2025

WOOMOB-617

Description

Addresses accessibility Shipping Labels layout issues listed in 1nxDAV51DK_l8opZ2ZznqaA3FpfiYPoWZPd38HA4TTys-gdoc

Known / Remaining issues

  • For the "Add package" screen the scrollable area is barely reachable with the max accessibility font size and phone landscape mode (height is compact).
  • "Create Shipping Label" button in Order details screen sometimes clipped by the 1st line. Happens rarely and during manual font scaling during debugging runtime.
  • Rasterized grid icons aren't scalable, for example, the "pencil" icon in order details screen.

Steps to reproduce

  • Fixes the layout constraints inside CustomerNoteTableViewCell.xib. Removes redundant constraints and removes height restriction to unlock multiline content for accessibility scales.
  • Same for CustomerInfoTableViewCell.
  • Maintains horizontal components distribution for "Hazmat" even for compact width environment to keep content readable.
  • Maintains horizontal components distribution for "Customs" row even for compact width environment to keep content readable.
  • Makes sure the address verification notice toast content always fits. Makes it multiline.
  • Addresses the issue where native Picker is not scalable according to dynamic font sizes. Replaces the Picker conditionally with TopTabView when the dynamicSize becomes isAccessibility

Testing information

The testing requires Shipping plugin and the accessibility font size adjustment.


  • Go to an order details screen.
  • Find the "CUSTOMER" section and the "+ Add Customer Note".
  • Toggle bigger font sizes up to maximum size.
  • Make sure the "+ Add Customer Note" resizes and scales content normally. The label should wrap to next line when needed.
Before After
Снимок экрана 2025-06-19 в 13 34 56 Снимок экрана 2025-06-19 в 13 44 28

  • Go to an order with an unfulfilled shipment
  • Open "Create Shipping Labels" flow and select that shipment
  • Locate the "Are you shipping dangerous goods or hazardous materials?" row
  • Increase the font size up to max.
  • Make sure the row content scaled properly. Make sure the label wraps lines properly.
  • Make sure the label and No > positioned horizontally.
Before After
Снимок экрана 2025-06-19 в 13 34 07 Снимок экрана 2025-06-19 в 13 28 32

  • Stay on same screen of the "Create Shipping Labels" flow.
  • Enter the foreign destination address to have customs row visible
  • Increase the font size up to max
  • Make sure the customs row elements distributed horizontally.
  • Make sure the row elements (including status badge) scaled and wraps lines properly.
Before After
Снимок экрана 2025-06-19 в 13 34 15 Снимок экрана 2025-06-19 в 13 29 12

  • Go to an order that contains a shipment with a missing/unverified destination address
  • Open "Create Shipping Labels" flow and select that shipment
  • Locate the bottom notice toast saying "Destination address missing"
  • Increase the font size up to max
  • Make sure the toast notice content is not truncated. Make sure it's scaled and wraps lines properly.
Before After
Снимок экрана 2025-06-19 в 13 34 26 Снимок экрана 2025-06-19 в 13 29 30

  • Go to an order with an unfulfilled shipment without a package selected
  • Open "Create Shipping Labels" flow and select that shipment
  • Tap on "Select a Package"
  • Increase the font size up to max
  • Make sure the native segmented picker turns into a tab view when font size increases reaching the accessibility mode
  • Make sure the tab view is scaling normally according to the font dynamic size
  • Make sure the tab view is functional and actually switches tabs
  • Decrease the font size back
  • Make sure the picker turns back into a native segmented control
  • Make sure the picker maintains the state through transformation

Before:
Снимок экрана 2025-06-19 в 13 34 36

After:

Simulator.Screen.Recording.-.iPhone.16.-.2025-06-19.at.13.30.37.mov

  • I have considered if this change warrants user-facing release notes and have added them to RELEASE-NOTES.txt if necessary.

@RafaelKayumov RafaelKayumov added this to the 22.7 milestone Jun 19, 2025
@RafaelKayumov RafaelKayumov added type: enhancement A request for an enhancement. category: accessibility Related to accessibility. Accessibility labels Jun 19, 2025
@wpmobilebot
Copy link
Collaborator

wpmobilebot commented Jun 19, 2025

App Icon📲 You can test the changes from this Pull Request in WooCommerce iOS Prototype by scanning the QR code below to install the corresponding build.

App NameWooCommerce iOS Prototype
Build Number30637
VersionPR #15783
Bundle IDcom.automattic.alpha.woocommerce
Commita9cece2
Installation URL14l5m3unqd87o
Automatticians: You can use our internal self-serve MC tool to give yourself access to those builds if needed.

@RafaelKayumov RafaelKayumov marked this pull request as ready for review June 19, 2025 11:57
@itsmeichigo itsmeichigo self-assigned this Jun 20, 2025
Copy link
Contributor

@itsmeichigo itsmeichigo left a comment

Choose a reason for hiding this comment

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

Tested and confirmed that most of the fixes look good on my iPhone 16 Pro device with large accessibility fonts. I found an issue with the customs row:

Here the labels are clipped off to multiple lines, which is not very readable. How about using SwiftUI's ViewThatFits with 2 layout options:
a. HStack with all items
b. HStack with the Edit button and a VStack containing the title and the badge.

Regarding the change to the notice of missing destination address, when a really large font size is used, the bottom sheet covers most of the screen making it hard to scroll through the content underneath. I'd suggest hiding the Purchase button when it's not enabled:

Even with the purchase button hidden, the view beneath can still be inacessible if there are more notices (i.e. unverified origin address or missing ITN field in the customs form). Should we have a logic to prioritize and show only one notice at a time?

I found some more layout issues that were not listed - I added them in the accessibility audit doc so they can be addressed in a separate PR.

@RafaelKayumov
Copy link
Contributor Author

How about using SwiftUI's ViewThatFits with 2 layout options:
a. HStack with all items
b. HStack with the Edit button and a VStack containing the title and the badge.

Done in 2f43ef4

I'd suggest hiding the Purchase button when it's not enabled:

Done in 0953bdd

Should we have a logic to prioritize and show only one notice at a time?

Done in a9cece2

Also made sure the "Order details" title fits just in 1 line: a9cece2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Accessibility category: accessibility Related to accessibility. type: enhancement A request for an enhancement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants