Certain versions of the Konqueror browser have a serious problem with form input in Drupal 4.4.x and 4.5.x. The symptoms are that keyboard and mouse input is completely ignored in the affected "text" and "textarea" fields. The symptoms only occur on textual fields that occur within a <fieldset>...</fieldset> tag set. This occurs, for example, when the form_group() API function is invoked.
I have tested several variants on the fieldset attributes, and as far as I can tell it doesn't matter what attributes are applied. I also tried it with a manually-created <fieldset><input type="text" ... /></fieldset> sequence, to eliminate the subtags such as legend, description, and title. The problem occurs even with a bare fieldset, and immediately goes away when the form elements are used without being in a fieldset. I further tested to ensure that the <table> tag was not involved, because a Google search suggested that there were problems with tables and fieldsets in Konqueror. Again, the problem is duplicable with no table in the fieldset.
It took a lot of digging, but I have finally traced the problem to the file misc/drupal.css. Specifically, the following clause appears to be at fault:
.node-form fieldset {
display: inline;
}
If I comment out the "display: inline;" attribute, then the fields work correctly. There does not appear to be any ill effect from this so far, but I haven't tested extensively nor have I tested to see if this patch breaks any other browsers.
I can duplicate this problem across several patch levels of Konqueror 3.3.0, and across Drupal 4.5.0 through 4.5.2.
Comment | File | Size | Author |
---|---|---|---|
#8 | drupal-css1.patch | 451 bytes | andremolnar |
Comments
Comment #1
syscrusher CreditAttribution: syscrusher commentedI've verified that the patch doesn't break Firefox 1.0, and also that it does fix the problem with Konqueror 3.3.0 in Drupal 4.4, on one of my production sites. Incidentally, the problem doesn't occur with older Konqueror versions, as far as I can tell.
Comment #2
Steven CreditAttribution: Steven commentedI believe that piece of CSS is there for IE5, but I can't remember if it was for Windows or Mac. I'll do some testing later.
Comment #3
Junyor CreditAttribution: Junyor commentedWorks fine in Safari and Opera with or without that rule.
IE 5 seems to have the same problem with or without it. In 4.5.2, the fieldsets aren't displayed at all. In HEAD, they cross the screen, pushing everything else down.
In other words, it doesn't seem to have any bad effects on Mac browsers with or without that rule.
Comment #4
syscrusher CreditAttribution: syscrusher commentedBTW, I can also duplicate this bug with the CVS version of Drupal 4.6 as of 2005-03-24.
Comment #5
Stefan Nagtegaal CreditAttribution: Stefan Nagtegaal commentedI can verify that this works flawlesly with drupal 4.6 and any Mac browser..
It would be nice if this would be applied..
Comment #6
syscrusher CreditAttribution: syscrusher commentedThe bug also bit me on the drupal.org site. I finished a new module and tried to create a project to announce it, but one of the required fields in the node/add/... page for Project has the CSS bug. I had to switch to Firefox in order to create the project, because I couldn't enter the data from Konqueror.
Comment #7
frjo CreditAttribution: frjo commentedI had the same problem as syscrusher when I tried to add a new project with Safari (v125.12). It was not possible to enter anything to the field "CVS directory". With Mozilla it worked OK.
Comment #8
andremolnar CreditAttribution: andremolnar commentedThis is not tested - I'm not a khtml user... But, I am taking everyone's word for it that this is what is needed to fix a problem. Here is a patch that removes the offending declaration.
andre
Comment #9
syscrusher CreditAttribution: syscrusher commentedThis patch works for me, and is in fact almost identical to my suggested change. +1, and thanks for moving the commit process one step further along.
Scott
Comment #10
Dries CreditAttribution: Dries commentedCommitted to HEAD and DRUPAL-4-6. Thanks for the round-up.
Comment #11
Steven CreditAttribution: Steven commentedThis patch was never tested on IE6 windows! It completely breaks the node admin forms.
I suggest re-adding it with:
* html .node-form fieldset { display: inline; }
This will make it kick in in IE only, and is not a CSS parser hack. IE simply thinks there is something above <html>.
Comment #12
Steven CreditAttribution: Steven commentedThis issue was fixed not long ago. Note: we generally avoid CSS hacks in Drupal, but this particular IE escape still validates, has no risk of kicking in in newer browsers, and is required to make the fieldsets work in IE.
Comment #13
(not verified) CreditAttribution: commentedComment #14
Bèr Kessels CreditAttribution: Bèr Kessels commentedthis issue is not fixed. It still exists in 4. 6. Or maybe it re-appeared in 4.6?
Anyway, http://drupal.org/node/26311 fixes it for good!