Make WordPress Core

Opened 10 years ago

Closed 10 years ago

#29135 closed defect (bug) (fixed)

Customizer panel back button does not appear on iOS devices

Reported by: ipstenu's profile Ipstenu Owned by: ocean90's profile ocean90
Milestone: 4.0 Priority: normal
Severity: normal Version: 4.0
Component: Customize Keywords: has-patch needs-testing
Focuses: Cc:

Description

If you open the customizer on the iOS, the widget buttons don't work as expected.

https://i.cloudup.com/JTrzDcEOk--3000x3000.jpeg

Instead of showing a back arrow in the upper left corner, you keep the X, and clicking it does exactly what the X should do.

Tested on iOS Mini (@rboren also had this issue on an iPad Air)

Attachments (3)

29135.patch (62.8 KB) - added by johneckman 10 years ago.
Patch to remove overflow as described
29135.2.patch (448 bytes) - added by johneckman 10 years ago.
Patch with just customize-controls.css not the rtl or min
29135.diff (3.0 KB) - added by celloexpressions 10 years ago.
Use a universal back button in the header for all panels

Download all attachments as: .zip

Change History (20)

This ticket was mentioned in IRC in #wordpress-dev by ipstenu. View the logs.


10 years ago

#2 @celloexpressions
10 years ago

  • Keywords needs-patch added
  • Milestone changed from Awaiting Review to 4.0

Specifically, the issue is that the panel-back button just isn't showing up (most likely happens with any panel, could use the Settings Customizer plugin shell for testing another panel). It's supposed to cover up the close icon. A non-beta solution would involve swiping to get out of a panel, but we'll leave that to #28784.

I think it isn't showing up because of iOS' issues with position: fixed;. I don't have a device to test on, but will try a messy patch to confirm that after doing some research.

#3 @celloexpressions
10 years ago

Apparently position: fixed isn't an issue anymore, so not sure why, but the issue is that the back icon doesn't show up. I can advise on its CSS but have no idea why that's happening here. It'll be a CSS issue with the back button, though.

Whatever it is, I think it's only showing up on iOS. I can't reproduce on any other devices, or emulating iPad with Chrome, although that doesn't surprise me.

This ticket was mentioned in IRC in #wordpress-dev by phpmypython. View the logs.


10 years ago

This ticket was mentioned in IRC in #wordpress-dev by celloexpressions. View the logs.


10 years ago

#6 @ocean90
10 years ago

It seems like the back button can't break out of .wp-full-overlay-sidebar-content, see https://cloudup.com/cDi7ffEpK3e

This ticket was mentioned in IRC in #wordpress-dev by celloexpressions. View the logs.


10 years ago

#8 @ocean90
10 years ago

#customize-controls .wp-full-overlay-sidebar-content {
overflow-y: auto;
overflow-x: hidden;
}

.wp-full-overlay-sidebar .wp-full-overlay-sidebar-content {
overflow: auto
}

needs to be removed, to get the button visible...

This ticket was mentioned in IRC in #wordpress-dev by helen. View the logs.


10 years ago

@johneckman
10 years ago

Patch to remove overflow as described

#10 @johneckman
10 years ago

  • Keywords has-patch added; needs-patch removed

@johneckman
10 years ago

Patch with just customize-controls.css not the rtl or min

#11 @ocean90
10 years ago

  • Keywords needs-patch added; has-patch removed

Sorry, I wasn't clear. We can't remove the rules, because on panel switching it will overflow. This is seems to be an issue with the iOS browser and needs a workaround, without removing the mentioned rules. They are just the reason, why the button is hidden.

@celloexpressions
10 years ago

Use a universal back button in the header for all panels

#12 @celloexpressions
10 years ago

  • Keywords has-patch needs-testing added; needs-patch removed

When I implemented this initially, it made sense for each panel to have its own back button. But we can just have them all use a universal one fairly easily while maintaining keyboard accessibility, since they're auto-focused anyway.

29135.diff switches to using a single back button for all panels, and locates the button in the header where it shouldn't run into the iOS bug that we're running into with this ticket. I don't have an iOS device to test on, but this should work. It's more churn than I'd like at this point, but the only other option is probably to implement touch gestures (swiping right to exit a panel), which is way to enhancementy to happen now.

accordion.js is really awful, but this change fits right in there. Once we eventually move the panel-switching JS to a more structured environment, it might make more sense to have separate buttons for each panel, but I'm okay with switching to one for now.

#13 follow-up: @ocean90
10 years ago

29135.diff works on iOS.

Can't we move the panel specific code into customize-controls.js for now?

#14 @helen
10 years ago

  • Summary changed from Theme Customizer gives wrong UI actions on iOS to Customizer panel back button does not appear on iOS devices

#15 @helen
10 years ago

  • Owner set to ocean90
  • Status changed from new to assigned

ocean90 - can you finalize and commit this please?

#16 in reply to: ↑ 13 @celloexpressions
10 years ago

Replying to ocean90:

Can't we move the panel specific code into customize-controls.js for now?

We need to also prevent the accordion behavior, so I don't think we could completely extract it. And at that point, it's probably not worth the effort for now, should probably just wait and do it right.

#17 @helen
10 years ago

  • Resolution set to fixed
  • Status changed from assigned to closed

In 29610:

Customizer panels: use a single back button for all panels.

This also ensures the back button is visible on iOS devices.

props celloexpressions.
fixes #29135.

Note: See TracTickets for help on using tickets.