Closed Bug 88512 (readonly) Opened 23 years ago Closed 14 years ago

allow html radio buttons and checkboxes to be set read-only

Categories

(Core :: Layout: Form Controls, enhancement)

enhancement
Not set
normal

Tracking

()

RESOLVED INVALID
Future

People

(Reporter: bugzilla, Unassigned)

References

()

Details

(Keywords: html4, Whiteboard: [p-opera][HTML4-17.2.1][HTML4-17.12.2])

Attachments

(1 file)

If readonly is set on <input> with type="radio" or type="checkbox", the controls can still be checked on and off.
Blocks: html4.01, robin's
Component: Browser-General → HTML Form Controls
Updating owner + qa.
Assignee: asa → rods
QA Contact: doronr → madhur
I found a dupe for this one - bug 7258
That's a XUL issue, this is an HTML issue.
Summary: readonly radio buttons and checkboxes not read-only → readonly html radio buttons and checkboxes not read-only
According to the w3c specifications, the readonly attribute is applicable to only <input> text and password controls. see -- http://www.w3.org/TR/html4/interact/forms.html#edef-INPUT this attribute does not apply to any other input controls. I consider this bug to be invalid. It behaves the same way in IE
No, the specification does not say readonly only applies to INPUT elements with certain values of type. It merely states "The following elements support the readonly attribute: INPUT and TEXTAREA." The DTD for INPUT does contain these comments: value CDATA #IMPLIED -- Specify for radio buttons and checkboxes -- checked (checked) #IMPLIED -- for radio buttons and check boxes -- disabled (disabled) #IMPLIED -- unavailable in this context -- readonly (readonly) #IMPLIED -- for text and passwd -- However, stating that 'value' is "for" radio buttons and checkboxes does not mean it does not apply to text and password input fields - as this bugzilla page demonstrates. Conversely, 'readonly' being "for" text and password inputs doesn't necessarily mean it doesn't apply to radio buttons and checkboxes. I see no normative statement in the standard making such a limitation.
Status: NEW → ASSIGNED
Target Milestone: --- → Future
Keywords: html4
*** Bug 117950 has been marked as a duplicate of this bug. ***
This bug has been sitting around for six months, for what looks to be a simple fix.
is the issue here only checkboxes and radiobuttons? The checkbox part can be fixed when the patch on bug 12164 is reviewed/checkin and when bug 112716 is fixed. Making this depend on bug 112716
Depends on: 112716
Whiteboard: [p-opera]
Whiteboard: [p-opera] → [p-opera][HTML4-17.2.1][HTML4-17.12.2]
Attached file Self-explanatory testcase (deleted) —
*** Bug 207194 has been marked as a duplicate of this bug. ***
Alias: readonly
What's the status of this bug? And are we even sure it is a bug? While I see Robin's point about the HTML 4.01 spec. limiting readonly to text and password, the DOM 2 HTML spec.[1] seems to clear up the HTML spec's ambiguity: HTMLInputElement readOnly of type boolean This control is read-only. Relevant only when type has the value "text" or "password". See the readonly attribute definition in HTML 4.01. IE 6SP1 and Opera 7.11 for Windows seem to have the same behavior is Mozilla 1.4b. [1] http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109/html.html#ID-88461592
Until you brought that up, I had no reason to think the W3C intended to limit 'readonly' or 'disabled' to only certain types of <input>. It was just that major browsers implement 'disabled' completely and 'readonly' incompletely. But the DOM groups statement gives me pause. OK, sure readonly is irrelevant for submit, reset, hidden, image, and button. But why would they want to limit its applicability to checkbox, radio, and file? I wonder if this isn't an oversight in the DTD comments that got amplified in the DOM spec.
For what it's worth, Opera 5.x does make readonly checkboxes and radio buttons readonly, though Opera 7.x does not have this functionality.
The basic difference between disabled and readonly for text inputs is that you cannot access a disabled input in any way whatsoever. For a readonly input, you cannot change the value, but you can, for example, highlight the value and copy it, then paste it elsewhere.... Since there is no equivalent operation for checkboxes and radio buttons, there is no reason to have readonly do anything in particular to them -- if you mean "disable this", that's what the "disabled" attribute is for. Marking invalid, since what we do fits what the spec specifies and this is implemented interoperably across all major browser engines.
Status: ASSIGNED → RESOLVED
Closed: 21 years ago
Resolution: --- → INVALID
"The basic difference between disabled and readonly for text inputs is that you cannot access a disabled input in any way whatsoever." Actually, the basic difference is that disabled inputs won't be submitted with the form ("Disabled controls cannot be successful" http://www.w3.org/TR/html4/interact/forms.html#adef-disabled). If I present a form to a user, some items may be marked readonly if they don't have permission to change them, yet I want the values to be displayed and submitted when the form is submitted. I second Robin's theory that the DOM spec came from a cut-and-paste from the HTML spec. Can anyone state why readonly is a bad thing? It certainly makes forms simpler if some value can't be changed, but needs to be displayed and submitted.
> If I present a form to a user, some items may be marked readonly if they don't > have permission to change them, yet I want the values to be displayed and > submitted when the form is submitted. The user can always change the DOM on the fly and resubmit the form with those radio buttons changed. So that's not something to rely on anyway.
"The user can always change the DOM on the fly and resubmit the form with those radio buttons changed. So that's not something to rely on anyway." Yes, and they can also create a malformed GET/POST to submit bad data, etc. That's what server-side validation is for. Irregardless of what happens occasionally, supporting readonly for elements that can be submitted makes sense in the 99.99% of cases where the non-error path is taken.
I don't usually use readonly checkboxes for restricting user input, anyway, you shouldn't rely only on HTML/Javascript to restrict user actions. Sometimes, when I need to show a list with enabled/disabled, on/off or true/false items, readonly checkboxes are very usefull because they have the same UI as everything on the browser, and have a very simple implementation: no need for someone to draw on/off/whatever images, just plain html. Even if this bug isn't critical, I think it isn't invalid, because it relates to a very clear part of the HTML specification. WORKSFORME or LATER sound better as resolutions than this INVALID. Please reconsider the reopening this bug.
I also disagree with an INVALID resolution. INVALID's has no grounding in the HTML specification, and its basis in the DOM2 specification is debatable. The use of 'relevant' in the DOM2 statement 'Relevant only when type has the value "text" or "password".' suggests to me that they overlooked checkboxes and radio buttons, where the relevance of readonly is obvious. If a restriction were intended, you would see a strongly worded statement like that of the HTML 4.0 description of 'checked': When the type attribute has the value "radio" or "checkbox", this boolean attribute specifies that the button is on. User agents must ignore this attribute for other control types. In my opinion, this statement should be taken as (mis)informative, not normative. However, I have posted to the W3C's www-dom (http://lists.w3.org/Archives/Public/www-dom/) and www-html (http://lists.w3.org/Archives/Public/www-html/) mailing lists requesting a clarification of this issue.
If the HTML working group clarifies this in a useful manner, please feel free to reopen...
Robin: Was there any further comment from the working groups? (If so, please drop me an e-mail.)
*** Bug 238240 has been marked as a duplicate of this bug. ***
In reply to comment #21: So far, no official response to either of my two queries each on www-html and www-dom. Jukka pointed out the lack of a readonly attribute on <select>, though what that may imply is a moot question. Perhaps the HTML group didn't consider all possible uses of readonly when they added it.
*** Bug 254384 has been marked as a duplicate of this bug. ***
I think this bug should be resolved with the W3C. There is a strong case for readonly on a checkbox. Heck, just the amount of duplicate bugs and confusion clearly shows that it should be implemented for checkboxes. It just makes no sense to just have a checkbox which can only be disabled...even if the UI behavior is the same, the symantic nature of disabled vs. readonly makes sense in the case of a checkbox. jon
*** Bug 259969 has been marked as a duplicate of this bug. ***
(In reply to comment #26) > *** Bug 259969 has been marked as a duplicate of this bug. *** Sorry for not finding the original bug report. I reported this bug since readonly checkboxes are very useful if you want to present the form to the user as it looked when submit was pressed. The HTML 4.01 is very clear saying that readonly should apply to checkboxes and radio buttons: "The following elements support the readonly attribute: INPUT and TEXTAREA." (Yes, we need reaonly select too but that is not part of HTML 4.01). Saying that IE doesn't implement it isn't a good reason for not implementing it. Especially since an earlier bug I reported was disgarded with the argument that "We do not care about IE, we only care about the HTML-specification". That report was about the nice feature of IE of not stopping at form element if tabindex is negative.
(In reply to comment #28) > See http://whatwg.org/specs/web-forms/current-work/#readonly In this Web Forms 2.0 working draft (as of 1 September 2004), section 2.5 (Extensions to existing attributes) begins: > In addition to the new attributes given in this section, some existing > attributes from [HTML4] are clarified and extended below. Hixie links to the part of this section about readonly: > readonly > This attribute applies only to text, password, email, uri, date-related, > time-related, and numeric input types, as well as the textarea element. > Specifically, it does not apply to radio buttons, check boxes, file upload > fields, select elements, or any of the button types; the interface concept of > "readonly" values does not apply to button-like interfaces. (The DOM readonly > attribute ([DOM2HTML]) obviously applies to the same set of types as the HTML > attribute.) This specific clarification from WHATWG is just what I've asked the HTML Group for for a year now. While I could cite counterexamples in software to WHATWG's rationale that the "interface concept" of read-only does not apply to "button-like" interfaces like checkboxes, that'd argue the merits of the spec, not the meaning of the spec. I'm persuaded that INVALID is the correct resolution.
> I'm persuaded that INVALID is the correct resolution. I don't, like many others. It makes sense to mark checkboxes/radio buttons read-only. It makes sense to anyone. So enforcing WebForms standards by making readOnly unapplicable to such controls is just nonsense. For instance, if we use the keyboard against a checkbox we can change its value (i.e. the value that will be submitted with the form). Rather than sticking to the spec to the letter it would have been logical to *extend* the meaning of readonly to checkboxes and radio buttons in the specs. Just because anyone has a common understanding of what a readonly checkbox or radio button is. Setting such controls readonly in other programming languages has the same effect as what we've been explaining here. With no overhead at all. The current state of the specs make it impossible to provide a checkbox (or radio button) which doesn't change but still submit its value. Granted, a workaround could be to display a checkbox (or radio button) that is disabled *and* a hidden control which value is the one of the disabled control. But this is only a workaround. Being just a workaround denotes there is a need behind it.
*** Bug 310392 has been marked as a duplicate of this bug. ***
30> Rather than sticking to the spec to the letter it would have been logical to 30> *extend* the meaning of readonly to checkboxes and radio buttons in the specs. In which case this should've been not a bug report, but an *enhancement* request. Reopening as RFE, adjusting summary and severity and dropping it as a HTML4 compliance blocker.
No longer blocks: html4.01
Severity: normal → enhancement
Status: RESOLVED → REOPENED
OS: Windows 2000 → All
Resolution: INVALID → ---
Summary: readonly html radio buttons and checkboxes not read-only → allow html radio buttons and checkboxes to be set read-only
A radio-element is ALWAYS readonly: you cant edit the value.
Dan_500: you can't edit the value, but you can edit whether this value will be passed to the server-side (successful control) or not, which amounts to the same from a functional perspective. Disabling the control won't cut it, as it automatically makes it unsuccessful. In short, we have no way of preventing a checkbox from being unchecked while still displaying it for informational purposes (think "mandatory option in such and such situation" for instance).
A disabled checkbox is rendered dimmed and not very readable - it is not easy to see is it checked or not. This would not be the case with a readonly one...
Assignee: rods → nobody
QA Contact: madhur → layout.form-controls
Should this bug be marked WONTFIX? This behavior is forbidden in both HTML 4.01 [1] and HTML5 [2]. HTML 4.01 states that the |readonly| attribute of |input| elements is "for text and passwd" whereas HTML5 states that "the following content attributes must not be specified and do not apply to the element: [...] readonly, [...]." [1] http://www.w3.org/TR/html401/index/attributes.html#h-3 [2] http://www.whatwg.org/specs/web-apps/current-work/multipage/number-state.html#checkbox-state (2010 April 16 Working Draft)
Indeed, @readonly has to be ignored for checkboxes and radios (per HTML5 specifications). This bug is not valid.
Status: REOPENED → RESOLVED
Closed: 21 years ago14 years ago
Hardware: x86 → All
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: