Bug Reports for Safari
On this page you find the archived bugs for Safari.
Background colors given to <col>, <tr>, and <tbody> on a table that is supposed to be invisible (visibility: hidden) still show up. Backgrounds given to individual cells or to elements inside cells are not shown (like expected).
Test page Workaround is not included
Reported by: Jeffrey Bush.
Sometimes you might want to mix text buttons with image buttons and insist on using the button tag. However, Firefox aligns the text buttons lower then the image buttons.
Test page Workaround is not included
Reported by: Laurens van der Klis.
Sometimes it is useful to switch two DOM objects with each other, and to reassign their ID's to make the process transparent. But in Safari and Safari alone, assigning an ID which already is being used does something bad. One of the objects can no longer be retrieved via document.getElementById, ever.
Test page Workaround is included
Reported by: Scott Lindsey.
Built-in functions in Safari are not Function objects, and not even Object objects. They appear to be of type "function" instead of type "object". This makes it impossible to use .call() and .apply() on them.
(ppknote: Safari 3 gives window.alert instanceof Object: true
. 1.3 doesn't, though.)
Test page Workaround is not included
Reported by: Mihail Milushev.
Safari handles the child/descendant concept incorrectly in tables. The sample style has a .table_style tr
style that Safari applies to the first row only. IE and FF do this correctly. Changing this to .table_style > tr
still doesn't work! I had to change it to .table_style tr *
to get it to work, but that's non-standard.
Test page Workaround is not included
Reported by: Norman Franke.
When border-collapse: collapse; is applied to a table with borders and a hidden cell, all browsers have issues:
Firefox hides border in the table entirely if all the cells in the row are hidden but the row element is visible. This can be resolved by hiding the row element.
Internet Explorer renders the border of the row that has all it's cells hidden. This can be resolved by hiding the row element.
Opera doesn't render all of the top border of a table if any of the top row cells is hidden and there is atleast one visible cell on the row.
Safari and iCab don't render the td border at all if a cell is hidden.
Test page Workaround is included
Reported by: Merri.
It appears that when you use the prototype object to assign custom methods to event handlers (in this instance `onload`), Safari incorrectly reassigns the `this` keyword to `Window`, when it should reference the object you initially assigned the method to.
In Safari (1.3 and 2+) the onload function will alert the `Window` object when one would expect it alert `Image`.
Test page Workaround is not included
Reported by: Tom Biegeleisen.
Firefox and Opera preserve the space of the column. The table column should not be rendered, subsequent columns should move over to fill the space as though the column is not there.
Test page Workaround is not included
Reported by: Marc Pacheco.
When the colgroup element does not have any child col elements and the span attribute is not set Safari defaults the value to 0.
Test page Workaround is not included
Reported by: Marc Pacheco.
Safari and Opera leave a space where the row would have been. When visibility: collapse
is set on a tr. The table row should not be rendered, subsequent rows should move up to fill the space as though the row is not there.
Test page Workaround is not included
Reported by: Marc Pacheco.
Safari incorrectly places a border below the tfoot element. This is fixed in the current nightlies of web kit.
Test page Workaround is not included
Reported by: Marc Pacheco.
Opera incorrectly places borders separating the thead and tbody sections.
Safari incorrectly places borders separating the thead and tbody sections it also draws a border around every column contained in the colgroup not just the colgroup.
(ppknote: Explorer doesn't do anything)
Test page Workaround is not included
Reported by: Marc Pacheco.
When a floating element has an opacity of less than one and when hovered it has an opacity of one, Safari (all webkit browsers except the latest Webkit builds) freaks out. The only solution so far seems to be to set the hover opacity to .99
Test page Workaround is included
Reported by: Vasilis.
In a for...in
loop, Safari mistakenly iterates over shadowed properties of an object.
Shadowed properties are an object's constructor's prototype properties which have been overwritten by a property of the object.
This bug affects Safari up to version 2, but has been corrected in WebKit.
Test page Workaround is not included
Reported by: Tobie Langel.
If you have an element set to float:right;
and you follow it with another element set to clear:right; float:right;
and then follow those first two elements with a third element set to float:left;
, the third element will not float next to the first element, even though it is not actually being cleared.
This bug is also present when the directions are reversed.
(ppknote: Strictly speaking this is a bug in Explorer, but I find Dan's reasoning compelling enough to publish his report unaltered. Besides, other web developers will conceivably run across this behaviour in Safari, Opera, or Firefox. Be sure to click the "real world example" link on the test page.)
Test page Workaround is not included
Reported by: Dan Richman.
Dynamically changing the className
or style.backgroundColor
has no effect on the rendering of <col>
s in Safari. Static styles work fine.
Test page Workaround is included
Reported by: Seb Frost.
The CSS hover-pseudoelement doesn't work on elements that are shown with an onmouseover-event in Safari
Test page Workaround is not included
Reported by: Anja Gustafsson.
Placing a right-floated element in a left-positioned absolutely-positioned element causes the following behavior:
- Opera and iCab display correctly (I think); the absolutely-positioned element is sized to fit the float or other nodes of the element, whichever is wider
- Gecko stretches the absolutely-positioned element to the maximum width allowed by the containing block
- KHTML stretches the absolutely-positioned element to the sum of the width of the float and the other child nodes
- (ppknote: IE behaves as Firefox)
My understanding of the box model spec is that Opera and iCab's behavior is correct; if anyone can corroborate this it would be greatly appreciated.
Test page Workaround is not included
Reported by: Josh Fremer.
In Safari, <INPUT>
and anchor (<A>
) elements within a block that has opacity
applied to it will not receive the treatment (blue border, by default) indicating that the user has put focus on that element (e.g. by tabbing). A workaround is provided to use the :focus pseudoclass on <INPUT>
and anchor elements within the wrapping semi-opaque element to manually apply a style indicating the user has focused on the element.
Test page Workaround is included
Reported by: Peter Mularien.
Let's say you've some content inside a div with a defined size, which is inside a table. The div is set to overflow: auto
, so any content that won't fit should scroll.
In Safari and Shiira, if the content inside the div is floated, the table height (not the div height) will expand to fit the height of the content inside the div.
Test page Workaround is not included
Reported by: Brandy.
A break tag in your code when text is aligned right causes a space at the end of the line. This has the effect that the last line in a group appears too far right.
Test page Workaround is included
Reported by: Chris Hester.
When changing a parent element's class via JavaScript/DOM, an initial position:absolute
declaration sticks. The problem is corrected by applying a position:relative
declaration to the parent element's children.
Test page Workaround is included
Reported by: Steve Stedman.
Safari doesn't show line-heights defined in the shorthand font declaration:
font:bold italic 14px/40px Arial, Helvetica, sans-serif;
The line height should be 40px, but it's not, in safari.
The solution is quite simple, though: use the common way to declare line-height:
line-height:40px;
Test page Workaround is included
Reported by: spark.
Safari's Date.setDate() function appears to be limited to a single byte number, making the range of date changes between -128 and 127.
Test page Workaround is included
Reported by: Squeeself.
In Safari 2.0.4 (and possibly other versions), a Node's "children" property includes all descendant nodes, not just the immediate children. The "childNodes" property correctly returns only the immediate child nodes.
Test page Workaround is not included
Reported by: Steve Joynt.
Events registered on img
objects don't fire if the image has an associated image map, and the targeted part of the image is part of an area
.
Test page Workaround is included
Reported by: Steve Joynt.
Put the code: <form style="display:table-cell"></form>
in a page. Safari will hang and you must force it to quit.
Applying styles dynamically makes no difference.
Test page Workaround is not included
Reported by: Toby Woodwark.
In Safari, when you have a object with a relative position, inside an object with overflow hidden, inside a fixed object, the relatively positioned object gets clipped when you scroll the page.
Test page Workaround is not included
Reported by: Chris McLay.
In Safari and Opera the 'dblclick' event can not be attached using addEventListener.
Test page Workaround is included
Reported by: Jorge Biaggini.
When setting the overflow
from auto
to hidden
, nothing happens in Safari.
Test page Workaround is not included
Reported by: Daco de la Bretoniere.
Safari (only tested 2.0.3) fires :hover outside the borders of an overflowe:d element if it's containing floating element. The :hover will trigger outside the element on Safari. Neither MSIE6 or Firefox has this bug.
Test page Workaround is included
Reported by: Martin Str�m.
When changing overflow from auto to visible for an element with fixed width,
Safari 2.0.3 correctly hides the scrollbar onmouseover, but it doesn't create a page scrollbar.
Opera has similar problems.
To make Safari repaint the page you have to additionally change e.g. the positioning, formatting or dimensions of that element.
Test page Workaround is included
Reported by: Moritz Stoltenburg.
In Safari, if you have a form that's inside a div with the clearfix (read about it here) class applied, the form will not show up on the page unless you specifically apply display: block to the containing div.
Test page Workaround is included
Reported by: Amber Rhea.
The correct use of the CAPTION
element –immediately after the TABLE start tag– causes COL
and COLGROUP
to become unusable as CSS selectors in the current version of Safari (2.0.3/version 417.9.2).
A workaround is to place the CAPTION
after the COL
/COLGROUP
tags, but this makes the code invalid.
Test page Workaround is included
Reported by: Leif Halvard Silli.
Attempting to get a text input field to expand to fill the browser in a nested table (table-layout: fixed
) will cause the input field to overflow its surrounding table cell. Occurs with select boxes as well.
Test page Workaround is not included
Reported by: Matt Wright.
Positioning legend tags — what works and what doesn't? To be honest not a lot does.
I've tested — position: absolute, fixed, relative, floats margins and setting widths.
Test page Workaround is not included
Reported by: Marc Pacheco.
In Safari and iCab, text-transform: uppercase
does not work when applied to the :first-line
pseudo-element.
Test page Workaround is not included
Reported by: Beckley Roberts.
Adding disabled
attributes to <BUTTON>
elements in Safari does not have the desired effect.
Disabled buttons with text content are not greyed out and still respond visually to clicks (albeit without generating any onclick
events).
In <BUTTON>
elements with image content, the addition of a disabled
atribute has no effect whatsoever.
Test page Workaround is included
Reported by: Philip Ronan.
Safari doesn't allow you to set a background image on a textarea.
Test page Workaround is not included
Reported by: Jean-Charles Meyrignac.
Once the background-color is set on an element, subsequent 'background:inherit' rules (even those matching selectors of higher weight) can't cause the element to inherit the color from its parent.
Test page Workaround is not included
Reported by: Pierre Saslawsky.
When nesting a form wholy inside a
| cell certain browsers includes extra white space at the end of the form. This would appear to be a bug.
Test page Workaround is not included
Reported by: Jay Soffian.
The INPUT (type=text/password) field in IE6 (and older probably too) has a top and bottom margin of 1px in both quirks and standard mode. This can cause a not so nice effect.
(ppknote: Opera and Safari have the same problem with the right margin)
Test page Workaround is not included
Reported by: Marcel Lipovsky.
When trying to dynamically create radio buttons with createElement()
and appendChild()
I noticed that the name and type of the radios weren't being appended along with the radio element.
Test page Workaround is not included
Reported by: Calophi.
If a page calls window.open(), then submitting a form on that page and returning to it using the "back" button causes the entered form values to be lost.
(ppknote: Safari has a different bug: it doesn't show the form at all when you go back. This has nothing to do with opening a new window.)
Test page Workaround is included
Reported by: Milo van der Leij.
When the font size is enlarged in Safari, generated content can cause the text to be pushed outside of its bounding box.
Test page Workaround is not included
Reported by: Aaron Gustafson.
Safari will omit the right padding of an element in a floated container if that element has trailing whitespace. Workaround is to ensure any elements with padding have no whitespace before the closing tag.
(ppknote: The test page is a mess in IE Mac, but the bug is not the same)
Test page Workaround is included
Reported by: Alan Harder.
If a blur event fires from an input when you close a tab (and not the entire browser), Safari crashes.
Test page Workaround is not included
Reported by: Beau Hartshorne.
In Internet Explorer 6.0 and higher, setting
html, body {position: relative;}
while in strict mode causes the browser to disallow scrolling. I don't know of any real-world applications where this would be a problem, but it's still a bug.
In Safari the entire body disappears if you set position: relative
on the HTML first, and then on the BODY. Safari crashes if you check BODY, then HTML, then uncheck BODY.
Workarounds include using quirks mode, or playing it safe and avoiding setting positioning to the html element.
Test page Workaround is included
Reported by: John Hansen.
In Safari 1.2 (and related browsers like OmniWeb and Shiira - but not Konqueror), window.toString() returns an undefined value instead of a string. As a result of this, comparing window to a string, boolean, or number causes Safari to throw an error.
Bug solved in Safari 1.3
Test page Workaround is included
Reported by: TarquinWJ.
Setting location.hash to the same value twice in succession causes the page to reload.
(ppknote: This bug is closely related to "Using internal link triggers load event", but it's not quite the same.)
Test page Workaround is included
Reported by: TarquinWJ.
The DOM 2 event spec requires that the capture phase event handlers should only be activated on ancestors of the event target, and not the event target itself. Mozilla and Safari break this rule in different ways, and fire it on the event target as well.
Test page Workaround is included
Reported by: TarquinWJ.
A background on a TR
doesn't work. Instead the TD
s inherit the TR
's background image.
Test page Workaround is not included
Reported by: Valentin Agachi.
Explorer Mac and Safari also trigger the onload event when you use an internal anchor to jump to. The jump is executed time and again.
(ppknote: This bug is closely related to Setting location.hash to the same value twice causes reload, but it's not quite the same.)
Test page Workaround is not included
Reported by: Benjamin Eric Morin.
The rows collection for tables in Safari is incorrect. It appears that Safari includes <th> elements in the rows collection. Using getElementsByTagName("tr")
returns the correct collection.
Test page Workaround is included
Reported by: David Clarke.
When loading XML through XMLHttpRequest, the resulting DOM does not allow access to content of elements, which happen to have the same element name in html AND which have an empty content model in html.
Example: the <link>...</link>
element from various RSS flavors is not available in Safari, using DOM methods, because an empty <link/>
element is defined for html.
Test page Workaround is not included
Reported by: Johannes la Poutr�.
When you place a display inline on a fieldset and the form elements within the fieldset are floated, the form elements wont be clickable by Safari.
Using a position relative will fix this.
Test page Workaround is included
Reported by: Paul van Steenoven.
​
works only when a text string is present. When the text consists of numbers only it doesn't work.
Test page Workaround is not included
Reported by: Alexander Popov.
When swapping images with javascript Safari will stretch the new image to the size of the previous image, unless the previous and new images have different widths AND heights.
Test page Workaround is not included
Reported by: Justin Heideman.
Safari doesn't count iframes with display: none
at all. They are not represented in the frames array and refreshing the pages in them is impossible, too.
Test page. Workaround is not included.
Reported by ppk.
Safari and Explorer Mac have trouble with reading JavaScript properties of an entire radio button array.
Test page. Workaround is not included.
Reported by ppk.
The hover selector combined with an adjacent selector (dt:hover + dd { color : red; }
) works buggily (Safari) or not at all (Opera), while these browsers support the two of them separately.
Test page. Workaround is not included
Reported by: Randall Hansen.
When creating custom DTDs like the one below, all browsers except Opera see the end of the ATTLIST as the end of the DOCTYPE. The result is that they print "]>" on the screen.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
[
<!ATTLIST p behavior CDATA #IMPLIED>
]>
Test page. Workaround is not included
Reported by ppk.
When navigating between named anchors in IE, the window.location
object changes to reflect the change in the URL. This is correct. However, the window.location
object should also change when you use the back or forward buttons, or the history.back()
and history.forward()
methods, to move between these anchors, and in IE 6.0 and IE 6.1, it does not.
Opera has exactly the opposite bug: it never shows the hash.
Test page Workaround is not included
Reported by: Isaac Z. Schlueter.
Anchor (or "#name")links don't work when the target anchor is inside an overflowing element.
Solved in Opera 7.60p3
Test page Workaround is not included
Reported by: Sander Grendelman.
When more than one animated GIF features on a page, Safari sometimes does not play the animation.
Test page. Workaround is not included.
Reported by Nic Rodgers.
Setting an inline border style (element.style.border
) works in all browsers. Removing it to allow the normal border styles to return, however, is tricky in Explorer Windows and impossible in Safari.
Test page. Workaround is included.
Reported by ppk.
When resizing a window vertically through resizeBy
, Safari seems to move the entire window instead.
Test page. Workaround is not included.
Reported by ppk.
When you define visibility: hidden
on *
Explorer Windows and Safari don't show anything ever again.
Test page. Workaround not included.
Reported by Giuseppe Bertone.
When you remove the elements of a form, Safari nonetheless keeps references to these removed elements in the document.forms.elements
array.
Test page. Workaround is not included.
Reported by Petr Stanicek.
Handling of innerHTML
in XHTML pages (with MIME type application/xhtml+xml
) is weird. Getting works, setting doesn't.
Test page. Workaround is not included.
Reported by ppk.
This site is no longer maintained. I’m sorry, but it’s just too much work for too little return.
You can continue to browse old bug reports, though.
Search reports by browser:
Atom
RSS