Closed
Bug 298875
Opened 20 years ago
Closed 20 years ago
align=right should not be applied to input elements with a type other than image
Categories
(Core :: Layout: Form Controls, defect)
Core
Layout: Form Controls
Tracking
()
RESOLVED
FIXED
People
(Reporter: info, Unassigned)
References
()
Details
Attachments
(2 files)
|
1.88 KB,
text/html
|
Details | |
|
1.39 KB,
patch
|
bzbarsky
:
review+
bzbarsky
:
superreview+
asa
:
approval1.8b4+
|
Details | Diff | Splinter Review |
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.8) Gecko/20050511 Firefox/1.0.4
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.8) Gecko/20050511 Firefox/1.0.4
I discussed this problem with Tantek on #webkit:
rakaz:
"Tantek: It might make only sense on an image, it is not formally
restricted to type=image."
Tantek:
"it's clear that <input type="image"> is a replaced object like
applet,iframe,img,object"
"whereas the other inputs are not"
"and yes, the spec should have been more clear about that"
"so it is not well defined what align should do on non-image inputs"
"IMHO the intent of the HTML4 authors was that 'align' only apply to
<input type="image">"
"rakaz, therefore, "align" should have no effect on other inputs"
"just like an attribute like 'inputAlign="right"' would have no effect"
The behavoir described above by Tantek is consistant with IE 4, 5, 5.5
and 6.0. Also consistant with Opera 7 and 8. It would appear the current
behavoir of both Firefox and Safari is not correct.
See also: http://bugzilla.opendarwin.org/show_bug.cgi?id=3360
Reproducible: Always
Steps to Reproduce:
1. Open http://bugzilla.opendarwin.org/attachment.cgi?id=2316
Actual Results:
The three form fields are be align to the left. The text inside the first and
third input are aligned to the right.
Expected Results:
The three form fields should be align to the left and the text inside the form
input fields should also be aligned to the left.
Comment 1•20 years ago
|
||
What about input elements with dir="rtl"?
| Reporter | ||
Comment 2•20 years ago
|
||
The dir attribute is not valid on input elements. So the input
element should ignore this attribute even if it is set. The
input element should honour the current text-direction though.
For example:
<body><input type=text value='The quick brown...'></body>
[The quick brown... ]
<body><input type=text align=right value='The quick brown...'></body>
[The quick brown... ]
<body><input type=text dir=rtl value='The quick brown...'></body>
[The quick brown... ]
<body dir=rtl><input type=text value='The quick brown...'></body>
[ ...The quick brown]
Comment 3•20 years ago
|
||
(In reply to comment #2)
> The dir attribute is not valid on input elements.
I don't think this statement is correct:
http://www.w3.org/TR/REC-html40/sgml/dtd.html#InputType
<!ATTLIST INPUT
%attrs; -- %coreattrs, %i18n, %events --
http://www.w3.org/TR/REC-html40/sgml/dtd.html#i18n
<!ENTITY % i18n
"lang %LanguageCode; #IMPLIED -- language code --
dir (ltr|rtl) #IMPLIED -- direction for weak/neutral text --"
>
| Reporter | ||
Comment 4•20 years ago
|
||
/me hides in shame... Of course is the dir attribute valid on
an input element. You are absolutely correct.
My mistake make the examples I gave invalid. These are the
correct examples:
<body><input type=text value='The quick brown...'></body>
[The quick brown... ]
<body><input type=text align=right value='The quick brown...'></body>
[The quick brown... ]
<body><input type=text dir=rtl value='The quick brown...'></body>
[ ...The quick brown]
<body dir=rtl><input type=text value='The quick brown...'></body>
[ ...The quick brown]
<body dir=rtl><input type=text align=left value='The quick brown...'></body>
[ ...The quick brown]
In this examples you can see that the dir attribute should
be honoured at all times, but that the align attribute does
not have any influence at all.
So align=left and dir=rtl will leave the text aligned to the
right and align=right and dir=ltr will leave the text aligned
to the left.
Comment 5•20 years ago
|
||
IE6 and Opera8 seem to ignore align=left and align=right for all input types,
except input type=image.
Comment 6•20 years ago
|
||
This makes Mozilla behave just like IE6/Opera8 for me.
Comment 7•20 years ago
|
||
What effect does the patch have on bug 170781 and its duplicates?
Comment 8•20 years ago
|
||
(In reply to comment #7)
> What effect does the patch have on bug 170781 and its duplicates?
No effect, and it shouldn't have any affect, afaik. The patch makes input tags
ignore align values for style purposes, except for input type=image.
| Reporter | ||
Comment 9•20 years ago
|
||
This patch won't have any effective effect on bug 170781 or it duplicates.
Bug 170781 changed the mapping of the align attribute. Previously this attribute
mapped to float for any input element. After the patch was applied the align
attribute was mapped to text-align, except when the type attribute is image. In
that case it was still mapped to float.
The behavoir of the patch attached to this bug will change the behavoir created
by bug 170781, because instead of mapping to text-align, the align attribute
will now be ignored completely, except when the type attribe is image. This is
the correct behavoir. The new patch won't affect the testcase mentioned in bug
170781, mapping to text-align on a checkbox does not any effect at all. The new
patch ignores the attribute completely, so there is no effective change.
Updated•20 years ago
|
Attachment #187413 -
Flags: review?(bzbarsky)
With my former HTML WG member hat on, the align attribute on INPUT was never
meant to be restricted to type="image".
Align should map to text-align for non-image types and float for image.
Sorry, but Tantek is wrong here. There is what says the spec, and there is browsers
common practice. They happen to be different. But the spec is clear, align
is allowed on all INPUT elements.
| Reporter | ||
Comment 11•20 years ago
|
||
While I believe the specification could spell it out more clearly,
I do believe the DTD is clear enough to support the opinion of
Tantek.
Text align is handled by the 'align' entity:
<!ENTITY % align "align (left|center|right|justify) #IMPLIED"
-- default is left for ltr paragraphs, right for rtl --
>
This entity is used in for example div's, paragraphs and headings:
<!ATTLIST DIV
%attrs; -- %coreattrs, %i18n, %events --
%align; -- align, text alignment --
%reserved; -- reserved for possible future use --
>
The alignment used for images use a different entity:
<!ENTITY % IAlign "(top|middle|bottom|left|right)" -- center? -->
<!ATTLIST IMG
[...]
align %IAlign; #IMPLIED -- vertical or horizontal alignment --
[...]
>
Now if you look at the INPUT attribute definition you can see
the same IAlign entity is used.
<!ATTLIST INPUT
%attrs; -- %coreattrs, %i18n, %events --
[...]
align %IAlign; #IMPLIED -- vertical or horizontal alignment --
[...]
>
This leads me to conclude that the behavoir of an input element should
be similar to that of an image, not to that of an div element. The DTD
specifically tells us that align='left' on an input element is not the same
thing as align='left' on a div or paragraph.
Additionally, I do not believe the writers of the HTML spec indented the
align attribute on an input element to fall back to changing the text
alignment. The writers of the spec would have specifically told us so
and allowed a greater set of values for the align attribute.
For example: the traditional text alignment values of 'justify' and
'center' are not allowed on input elements. If the writers would have
wanted the align attribute to change the text aligment they would have
allowed these two values as valid values for the align attribute.
Comment 12•20 years ago
|
||
The patch is technically good (if the trailing whitespace is removed), if we
want the behavior change. I guess that's what we need to decide, then...
Status: UNCONFIRMED → NEW
Ever confirmed: true
Comment 13•20 years ago
|
||
Ian, does WHATWG plan to clarify this?
QA Contact: layout.form-controls → ian
Comment 14•20 years ago
|
||
Yeah. By dropping "align" altogether. Probably not what you wanted to hear. :-)
Being like IE6 seems good to me.
Comment 15•20 years ago
|
||
Comment on attachment 187413 [details] [diff] [review]
patch
OK, let's try this out in 1.8b4 and see how things go...
Attachment #187413 -
Flags: superreview+
Attachment #187413 -
Flags: review?(bzbarsky)
Attachment #187413 -
Flags: review+
Attachment #187413 -
Flags: approval1.8b4?
Updated•20 years ago
|
Attachment #187413 -
Flags: approval1.8b4? → approval1.8b4+
Comment 16•20 years ago
|
||
Fix checked in by timeless at 2005-07-20 16:24.
Status: NEW → RESOLVED
Closed: 20 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•