Index of /tests/evil/acid/004

      Name                    Last modified      Size  Description
Parent Directory -

Acid4 will be primarily a visual test, not especially scripted.

It will likely focus on the following specifications and areas:


It may also include subpixel positioning; will likely be partially or
entirely in rtl mode and may contain non-ASCII Unicode characters with
special formatting requirements, e.g. U+200B; and may contain empty
inline boxes that are styled.

The test itself will not be developed in public, but a list of
features tested will be compiled and distributed before the test is
announced to ensure there is broad agreement on the set of features
tested. Before it is announced, browser vendors will be asked to
suggest the best six-month window for release in the next 12 months.

- don't include minor bugs
- don't ask for specific tests, write the tests yourself
- request feedback from early on (t=0) in the cycle, both publically
  and directly to specific people
- ask for feedback about what things to test
- don't actually show the test early in the cycle, to prevent people
  from targetting it while people are discussing what to test
- no performance stuff as part of the test (though as a separate
  competition is ok if you get everyone to sign off on the test being
- make it have a pretty picture
- ask browsers for advice on timing the announcment of the test


  shaver -
  cwilso to determine what he thinks should be tested
  wide circulation mailing lists
  Devon Young -- wants to suggest basic bugs that he runs into
  contact dbaron very early on

ABSOLUTELY MUST have test of fractional pixel values, e.g. margin-left
of one inline-block + margin-right of another inline-block being
0.24px + 0.76px, also em values of fractional font sizes, etc.

Link: HTTP header

text-align: "string"

<!DOCTYPE html>
div { display: table-cell; border: 1px solid blue; }
<p>These columns are in the markup:
<p>These columns are created by a script:
var div;
for (var i = 1; i <= 3; i++) {
  div = document.createElement("div");
  div.innerHTML = "column " + i;

\n instead of \r for newlines in IE

URI canonicalisation (case of scheme/host is irrelevant):
> Basically, I think you would create an iframe to someresource that
> succeeds, wait for it to load, then get the full URL from that frame,
> and change the case of the protocol or hostname. You would make an
> anchor tag with this new URL, and check if it gets the :visited
> pseudo-style. Am I missing something?

Opera 9 has bugs in how it handles right-to-left sections (used for
Arabic, Hebrew, etc.). In particular it reverses right and left
padding on boxes, which is wrong. It would be a very valuable addition
to Acid3 to put either <tag dir=rtl> or .class {direction: rtl} on the
page to verify that table and box rendering is correct in that mode.
- David Weitzman

# The entity &8203; -- zero-width space -- works properly in Mozilla,
Safari, and Opera. But it leaves a block glyph in IE everywhere used,
not just at taken breaks.

========= Test implicit calls of function overrides =======

var org = String.prototype.toString; // backup original function
String.prototype.toString = function() { return "xyz"; }
var idx = "abc".indexOf("y");
String.prototype.toString = org;     // avoid side effects
if (idx != 1)
   throw "toString() override not in effect";
return 5;

Reasoning based on the ECMAScript Edition 3 spec: the lookup of the
"indexOf" property will be done after the primitive string value is
promoted with ToObject() (11.21.1 Property Accessors). This will
result in a String object. The String.prototype.indexOf() function
found by the "indexOf" lookup is defined to call ToString on the
"this" value ( Section 9.8 says that ToString will first
call ToPrimitive() and then ToString() on the result. ToPrimitive()
will call the internal [[DefaultValue]] function (9.1). Section defines [[DefaultValue]] to execute a toString() function
should it exist. And that's the point where a custom function set by
the JS programmer should be respected.
- Harri Porten, but see next quote:

On Sat, 23 Feb 2008, Garrett Smith wrote:
> Test implicit calls of function overrides:
> That's a test of [[PutValue]] combined with a test for [[Get]] on a
> Built in (String).
> The note by Harri Porten is wrong.
> The first thing that happens is "." creates an object; ToObject()
> which results in a String object being created. The String object.
> Then call Get("indexOf") on that object. It is not found on the   
> object, so it looks in the prototype chain. "indexOf" is found on 
> String.prototype. next, the call operator () invokes call() on    
> indexOf, passing the string as the thisArg.
> In indexOf, the value is obtained by calling ToObject(this), which
> calls ToPrimitive passing the String object, which results in a string
> value.

From: Garrett Smith <>
> Other bugs:
>  Webkit doesn't return computed clip values =>
>  Mozilla: computed shorthand values return "" =>

IE6 renders the inlines badly in this:
   <!DOCTYPE html>
   <style>span { border: solid }</style>

default <option> when first disabled
empty inlines with borders should render (
borders on inlines should paint
unknown colours should drop the declaration
!important followed by non-!importatnt should let the !important one win

list from dbaron:,25888,87277,118501,148810,258377
check the test cases in webkit, opera, IE as well as gecko

Look for bugs with status whiteboard [Hixie-P...]


glazou wants :target tested