Opened 2 years ago

Closed 2 years ago

Last modified 2 years ago

#15108 closed bug (wontfix)

button: compatibily on input checkbox broken

Reported by: Bago Owned by: Bago
Priority: minor Milestone: none
Component: ui.button Version: 1.12.1
Keywords: Cc:
Blocked by: Blocking:

Description

The old button ui options on input checkbox do not work anymore.

The upgrade documentation say that the old options are deprecated but that they are expected to be backward compatible in 1.12: they will be removed in 1.13.

Here is a jsbin proving the broken backward compatibility: https://jsbin.com/jiserosuve/2/edit?html,js,console,output

It seems the compatibility layer for "button" is there, but the compatibility layer for "checkboxradio" has not been written at all.

Change History (6)

comment:1 Changed 2 years ago by Scott González

Owner: set to Bago
Status: newpending

Please explain specifically what you think is not working. I see a checkbox being displayed and it seems to be working just fine (minus the known and already fixed in master display bug for the checked icon with hover).

comment:2 Changed 2 years ago by Bago

Status: pendingnew

It is easier if you compare it with the same jsbin including jquery-ui 1.11: https://jsbin.com/serebutozi/1/edit?html,js,console,output

From the Docs I understand that the same code should produce the same output with 1.11 and 1.12 otherwise will be considered a regression: this is not the case.

comment:3 Changed 2 years ago by Scott González

Resolution: wontfix
Status: newclosed

This is not a bug in the compatibility layer. Checkboxradio doesn't have equivalent options, and that was an intentional decision. So while the options were deprecated for button, they just don't exist for checkboxradio. In order to get the equivalent functionality, you actually need to change your markup. This is covered in the upgrade guide.

I'm closing as won't fix because we have no plans to change the compatibility layer to modify the markup based on the options.

comment:4 Changed 2 years ago by Bago

Then IMHO the doc is not clear with regard to this. It is not included as a "breaking change" but in a "deprecated" set of things...

If you "Removed" a support it should not be described in a "Deprecated" paragraph.

So, it's fine if it is intentional, but then it is not clear in the documentation.

One last comment: it is not expected that an upgrade from 1.11 to 1.12 and from 1.12 to 1.13 introduces backward compatibility issues... why don't you use use 2.x 3.x and so on when you introduce breaking changes? People is going to upgrade jQuery-UI the same way they upgrade jQuery... while the versioning semantic seems to be very different.

Thank you for you work. I hope my criticism is constructive.

comment:5 Changed 2 years ago by Scott González

jQuery UI has always treated minors and majors. That won't change until we release 2.0 at the end of the API rewrites.

As for deprecation vs. removal, the deprecation notice says "Deprecated support for checkbox and radio types, in favor of checkboxradio widget." Support for those types has been deprecated, not removed, as evident by the checkboxradio widget being instantiated. There is a paragraph talking about the fact that options do not map and you must change markup for equivalent functionality when using the checkboxradio widget.

I'm not arguing that this isn't crystal clear, but it is documented. If you have suggestions for improved wording, the upgrade guide is open source, just like the code. Please send a pull request.

comment:6 Changed 2 years ago by Bago

We read it a lot of times and at least 3 different people and we didn't get this was a "breaking change". We all understood it was a deprecation and that 1.12 would have worked like 1.11 at this time.

But, if this is clear to you then don't worry: we are italian and our english is not so good.

BTW, this is just a feedback: i already have too many opensource project on my own and I already deal with my users complaints ;-) Well, this "bug" in fact is a complaint from a user of one of my opensource projects that upgraded to jquery ui 1.12 and something was broken... Now I changed my project to declare jquery 1.12 not compatible.

Note: See TracTickets for help on using tickets.