Opened 4 years ago

Closed 4 years ago

Last modified 4 years ago

#18449 closed defect (fixed)

text cursor in dijit/form/CheckBox after clicking on iOS8 (dijit 1.8)

Reported by: Nick Nisi Owned by: bill
Priority: undecided Milestone: 1.8.11
Component: Dijit - Form Version: 1.8.9
Keywords: Cc:
Blocked By: Blocking:

Description (last modified by bill)

To reproduce, checkout dojo and dijit 1.8 branch, then load dijit/tests/form/mobile.html on iOS or a simulator (I'm using iPad simulator with iOS 8.2). Click one of the dijit checkbox repeatedly. It only changes state once.

This is similar to 98b1f4529d8dc032d433f3717b2c907f4569fb63, but applied to the dijit 1.8 branch. It appears that the "onmouseup" event is causing the checkbox to get a blinking cursor and become unusable in iOS8. Checking for has('ios') and instead using "touchend" works for both iOS7 and iOS8

Change History (10)

comment:1 Changed 4 years ago by Nick Nisi

Submitted pull request https://github.com/dojo/dijit/pull/79 against the 1.8 branch

Last edited 4 years ago by Nick Nisi (previous) (diff)

comment:2 Changed 4 years ago by bill

So, are you implying that the problem happens in dijit 1.8, but not dijit 1.9+?

comment:3 Changed 4 years ago by Nick Nisi

Yeah, it doesn't seem to happen in 1.9.0+

comment:4 Changed 4 years ago by Nick Nisi

Actually, the blue text cursor is reproducible with native checkboxes in iOS8. I've updated my pull request with a fix that doesn't make the checkboxes unusable when it appears.

comment:5 Changed 4 years ago by bill

I'm not following you. That's a big PR. I'd rather just cherry-pick 98b1f4529d8dc032d433f3717b2c907f4569fb63 to the 1.8 branch. Are you implying the cherry-pick doesn't work? Are you implying that the problem isn't really fixed in Dijit 1.9+ after all?

comment:6 Changed 4 years ago by Nick Nisi

Yeah, it is a big PR, and I don't actually think it addresses the issue. This is definitely an iOS8 issue, as I can reproduce without Dojo and with native form elements. It seems that if focus is set before the element is loaded, Safari won't actually give it focus until the user taps on the page somewhere. Then, it will get focus and whatever was tapped will get a touchup event. A great, reproducible test case it to load any focusable input into a dijit/Dialog (with autofocus: true. Try tapping on that element to interact with it, and it't not possible. I can reproduce this in the latest release of Dojo, as well as in 1.8, which is where I thought the issue was originally occurring.

It appears that this wasn't an issue in iOS7 because element.focus() didn't actually do anything under these circumstances, althought I'm still trying to determine what "these circumstances" is.

comment:7 Changed 4 years ago by bill

Description: modified (diff)
Milestone: tbd1.8.11
Owner: set to bill
Status: newassigned

comment:8 Changed 4 years ago by Bill Keese <bill@…>

In c535128334b5a130b78c79b87d2b236ab0490d9b/dijit:

Error: Processor CommitTicketReference failed
Unsupported version control system "git": Can't find an appropriate component, maybe the corresponding plugin was not enabled? 

comment:9 Changed 4 years ago by Bill Keese <bill@…>

Resolution: fixed
Status: assignedclosed

In f2d53fb8b0f0194521d226b2699dfe6b3a4c4b2a/dijit:

Error: Processor CommitTicketReference failed
Unsupported version control system "git": Can't find an appropriate component, maybe the corresponding plugin was not enabled? 

comment:10 Changed 4 years ago by bill

Summary: text cursor in dijit/form/CheckBox after clicking on iOS8text cursor in dijit/form/CheckBox after clicking on iOS8 (dijit 1.8)

Marked this as fixed since the important problem (where you can't change the value of the checkbox) is fixed. There's still a blinking cursor though.

Note: See TracTickets for help on using tickets.