Please send feedback to julian.reschke@gmx.de.
Unless stated otherwise, all tests were executed with the latest release versions of Firefox, Google Chrome, Microsoft Internet Explorer, Safari, Konqueror (kde4win) and Opera on a machine running Windows 7. Test versions of Firefox are included because Link header field related fixes are currently being worked on.
Colors -- Red: Failure, Green: Pass, Yellow: Warning, Grey: Not Supported
Score -- Passes: 2 points, Warning: 1 point, in percent of possible points (this should be updated to count optional features differently)
Test Case | Firefox 19 | Microsoft IE 9 | Opera 12 | Safari 5.1 | Konqueror 4.7 | Google Chrome 25 | |
---|---|---|---|---|---|---|---|
Summary | Score: 92 | Score: 0 | Score: 47 | Score: 0 | Score: 0 | Score: 0 | |
Link rel=stylesheet (CSS) | simplecss | pass | unsupported | pass | unsupported ((see Webkit Issue 20018)) | unsupported | unsupported ((see Webkit Issue 20018 and Chrome Issue 120104)) |
simplecssreversed | pass | unsupported | pass | unsupported | unsupported | unsupported | |
simplecsssq | pass | unsupported | pass | unsupported | unsupported | unsupported | |
simplecssmrel | pass | unsupported | pass | unsupported | unsupported | unsupported | |
simplecssmlnk | pass | unsupported | pass | unsupported | unsupported | unsupported | |
simplecssanchr | pass | unsupported | fail (anchor parameter ignored) | unsupported | unsupported | unsupported | |
simplecssanchrsame | pass | unsupported | pass | unsupported | unsupported | unsupported | |
simplecssanchrsame2 | pass | unsupported | pass | unsupported | unsupported | unsupported | |
simplecssanchrsamefrag | pass | unsupported | fail | unsupported | unsupported | unsupported | |
simplecssanchrsamefrag2 | pass | unsupported | fail | unsupported | unsupported | unsupported | |
Link rel=stylesheet (XSLT) | simplexslttypenotype | fail ((see Mozilla Bug 688712)) | unsupported | unsupported | unsupported | unsupported | unsupported |
simplexslttypedepr | pass | unsupported | unsupported | unsupported | unsupported | unsupported | |
simplexslttypedepr2 | pass | unsupported | unsupported | unsupported | unsupported | unsupported | |
simplexslttypeoff | pass | unsupported | unsupported | unsupported | unsupported | unsupported | |
title parameter | simplecsstitle | pass | unsupported | pass ((but title not exposed in DOM)) | unsupported | unsupported | unsupported |
simplecsstitleq | pass | unsupported | fail (fails to apply backslash-unescaping) | unsupported | unsupported | unsupported | |
simplecsstitleq2 | pass | unsupported | fail (fails to apply backslash-unescaping) | unsupported | unsupported | unsupported | |
simplecsstitletok | warn (accepts the token form) | unsupported | warn (accepts the token form (but title not exposed in DOM)) | unsupported | unsupported | unsupported | |
RFC 5987 encoding title parameter | simplecsstitle5987 | pass | unsupported | unsupported | unsupported | unsupported | unsupported |
simplecsstitle5987r | pass | unsupported | unsupported | unsupported | unsupported | unsupported | |
simplecsstitle5987iso88591 | unsupported ((does not support ISO-8859-1)) | unsupported | unsupported | unsupported | unsupported | unsupported | |
simplecsstitle5987noenc | pass | unsupported | unsupported | unsupported | unsupported | unsupported | |
simplecsstitle5987invenc | pass | unsupported | unsupported | unsupported | unsupported | unsupported | |
simplecsstitle5987parseerror | pass | unsupported | unsupported | unsupported | unsupported | unsupported | |
simplecsstitle5987parseerror2 | pass | unsupported | unsupported | unsupported | unsupported | unsupported | |
Extension parameters | simpleext | pass | unsupported | pass | unsupported | unsupported | unsupported |
simpleextq | pass | unsupported | pass | unsupported | unsupported | unsupported | |
simpleexta | pass | unsupported | pass | unsupported | unsupported | unsupported | |
Extension link relations | simpleextrel | pass | unsupported | pass | unsupported | unsupported | unsupported |
Handling multiple links | simplecss2 | pass | unsupported | pass | unsupported | unsupported | unsupported |
simplecssafterother | pass | unsupported | pass | unsupported | unsupported | unsupported |
Various tests checking CSS stylesheet links.
Link: <simple.css>; rel=stylesheet
Test Results | |
---|---|
FF19 | pass |
MSIE9 | unsupported |
Opera | pass |
Safari | unsupported ((see Webkit Issue 20018)) |
Konq | unsupported |
Chrome | unsupported ((see Webkit Issue 20018 and Chrome Issue 120104)) |
simple CSS link
Result for this UA:
Link: rel=stylesheet; <fail.css>
Test Results | |
---|---|
FF19 | pass |
MSIE9 | unsupported |
Opera | pass |
Safari | unsupported |
Konq | unsupported |
Chrome | unsupported |
simple CSS link, with link relation and target reversed
Result for this UA:
Link: <fail.css>; rel='stylesheet'
Test Results | |
---|---|
FF19 | pass |
MSIE9 | unsupported |
Opera | pass |
Safari | unsupported |
Konq | unsupported |
Chrome | unsupported |
simple CSS link, relation in single quotes
Result for this UA:
Link: <simple.css>; rel="foobar stylesheet"
Test Results | |
---|---|
FF19 | pass |
MSIE9 | unsupported |
Opera | pass |
Safari | unsupported |
Konq | unsupported |
Chrome | unsupported |
simple CSS link with two link relations
Result for this UA:
Link: <foo>; rel=bar, <simple.css>; rel=stylesheet
Test Results | |
---|---|
FF19 | pass |
MSIE9 | unsupported |
Opera | pass |
Safari | unsupported |
Konq | unsupported |
Chrome | unsupported |
simple CSS link, following another link
Result for this UA:
Link: <fail.css>; anchor="http://example.com/"; rel=stylesheet
Test Results | |
---|---|
FF19 | pass |
MSIE9 | unsupported |
Opera | fail (anchor parameter ignored) |
Safari | unsupported |
Konq | unsupported |
Chrome | unsupported |
simple CSS link, but anchor goes to different site; thus header field specifies a stylesheet for http://example.com/, not the current document (see RFC 5988, Section 5.2, Paragraph 2)
Result for this UA:
Link: <simple.css>; anchor=""; rel=stylesheet
Test Results | |
---|---|
FF19 | pass |
MSIE9 | unsupported |
Opera | pass |
Safari | unsupported |
Konq | unsupported |
Chrome | unsupported |
simple CSS link, with an anchor parameter identifying the current document (see RFC 5988, Section 5.2, Paragraph 2)
Result for this UA:
Link: <simple.css>; anchor=""; rel=stylesheet
Test Results | |
---|---|
FF19 | pass |
MSIE9 | unsupported |
Opera | pass |
Safari | unsupported |
Konq | unsupported |
Chrome | unsupported |
same as above, but navigating to the HTTP resource including a fragment identifier; the fragment identifier is irrelevant from HTTP's point of view, so the result should be the same (the CSS being applied)
Result for this UA:
Link: <fail.css>; anchor="#foo"; rel=stylesheet
Test Results | |
---|---|
FF19 | pass |
MSIE9 | unsupported |
Opera | fail |
Safari | unsupported |
Konq | unsupported |
Chrome | unsupported |
The anchor identifies the context resource plus the fragment "foo"; as the fragment is not sent over HTTP, the link should not be applied
Result for this UA:
Link: <fail.css>; anchor="#foo"; rel=stylesheet
Test Results | |
---|---|
FF19 | pass |
MSIE9 | unsupported |
Opera | fail |
Safari | unsupported |
Konq | unsupported |
Chrome | unsupported |
same as above, but navigating to the HTTP resource including a fragment identifier; the fragment identifier is irrelevant from HTTP's point of view, so the result should be the same (the CSS not being applied)
Result for this UA:
Various tests checking XSLT transformation links.
Link: <simple.xslt>; rel=stylesheet
Test Results | |
---|---|
FF19 | fail ((see Mozilla Bug 688712)) |
MSIE9 | unsupported |
Opera | unsupported |
Safari | unsupported |
Konq | unsupported |
Chrome | unsupported |
simple XSLT link.
Result for this UA:
Link: <simple.xslt>; rel=stylesheet; type="text/xsl"
Test Results | |
---|---|
FF19 | pass |
MSIE9 | unsupported |
Opera | unsupported |
Safari | unsupported |
Konq | unsupported |
Chrome | unsupported |
simple XSLT link with inofficial XSLT media type.
Result for this UA:
Link: <simple.xslt.asis>; rel=stylesheet; type="text/xsl"
Test Results | |
---|---|
FF19 | pass |
MSIE9 | unsupported |
Opera | unsupported |
Safari | unsupported |
Konq | unsupported |
Chrome | unsupported |
simple XSLT link with inofficial XSLT media type; with the XSLT actually being served as text/xsl (as opposed to application/xslt+xml)
Result for this UA:
Link: <simple.xslt>; rel=stylesheet; type="application/xslt+xml"
Test Results | |
---|---|
FF19 | pass |
MSIE9 | unsupported |
Opera | unsupported |
Safari | unsupported |
Konq | unsupported |
Chrome | unsupported |
simple XSLT link with official XSLT media type.
Result for this UA:
Various tests checking handling of title parameter (see CCSOM, Requirements on User Agents Implementing the HTTP Link Header, but see also bug report).
Link: <simple.css>; rel=stylesheet; title="A simple CSS stylesheet"
Test Results | |
---|---|
FF19 | pass |
MSIE9 | unsupported |
Opera | pass ((but title not exposed in DOM)) |
Safari | unsupported |
Konq | unsupported |
Chrome | unsupported |
simple titled CSS link
UAs that can show CSS stylesheet titles should use the specified name.
Result for this UA:
Link: <simple.css>; rel=stylesheet; title="title with a DQUOTE \" and backslash: \\"
Test Results | |
---|---|
FF19 | pass |
MSIE9 | unsupported |
Opera | fail (fails to apply backslash-unescaping) |
Safari | unsupported |
Konq | unsupported |
Chrome | unsupported |
simple titled CSS link, using quoted characters
UAs that can show CSS stylesheet titles should use the specified name.
Result for this UA:
Link: <simple.css>; title="title with a DQUOTE \" and backslash: \\"; rel=stylesheet
Test Results | |
---|---|
FF19 | pass |
MSIE9 | unsupported |
Opera | fail (fails to apply backslash-unescaping) |
Safari | unsupported |
Konq | unsupported |
Chrome | unsupported |
simple titled CSS link, using quoted characters (order reversed as compared to above)
UAs that can show CSS stylesheet titles should use the specified name.
Result for this UA:
Link: <simple.css>; rel=stylesheet; title=AsimpleCSSstylesheet
Test Results | |
---|---|
FF19 | warn (accepts the token form) |
MSIE9 | unsupported |
Opera | warn (accepts the token form (but title not exposed in DOM)) |
Safari | unsupported |
Konq | unsupported |
Chrome | unsupported |
simple titled CSS link, using token form (not allowed by RFC 5988)
Result for this UA:
Various tests checking handling of RFC 5987 encoding for titles.
Link: <simple.css>; rel=stylesheet; title*=UTF-8''stylesheet-%E2%82%AC
Test Results | |
---|---|
FF19 | pass |
MSIE9 | unsupported |
Opera | unsupported |
Safari | unsupported |
Konq | unsupported |
Chrome | unsupported |
simple titled CSS link, using the encoding defined in RFC 5987
UAs that can show CSS stylesheet titles should use the specified name.
Result for this UA:
Link: <simple.css>; title*=UTF-8''stylesheet-%E2%82%AC; rel=stylesheet
Test Results | |
---|---|
FF19 | pass |
MSIE9 | unsupported |
Opera | unsupported |
Safari | unsupported |
Konq | unsupported |
Chrome | unsupported |
simple titled CSS link, using the encoding defined in RFC 5987 (parameters reversed)
UAs that can show CSS stylesheet titles should use the specified name.
Result for this UA:
Link: <simple.css>; title*=iso-8859-1''stylesheet-%E4; title="fallback title"; rel=stylesheet
Test Results | |
---|---|
FF19 | unsupported ((does not support ISO-8859-1)) |
MSIE9 | unsupported |
Opera | unsupported |
Safari | unsupported |
Konq | unsupported |
Chrome | unsupported |
"title*" specifies stylesheet-ä
Result for this UA:
Link: <simple.css>; title*=''A%20simple%20CSS%20stylesheet; title="fallback title"; rel=stylesheet
Test Results | |
---|---|
FF19 | pass |
MSIE9 | unsupported |
Opera | unsupported |
Safari | unsupported |
Konq | unsupported |
Chrome | unsupported |
missing encoding in "title*"; should fallback to "fallback title"
Result for this UA:
Link: <simple.css>; title*=foobar''A%20simple%20CSS%20stylesheet; title="fallback title"; rel=stylesheet
Test Results | |
---|---|
FF19 | pass |
MSIE9 | unsupported |
Opera | unsupported |
Safari | unsupported |
Konq | unsupported |
Chrome | unsupported |
invalid encoding in "title*"; should fallback to "fallback title"
Result for this UA:
Link: <simple.css>; title*=foobar; title="fallback title"; rel=stylesheet
Test Results | |
---|---|
FF19 | pass |
MSIE9 | unsupported |
Opera | unsupported |
Safari | unsupported |
Konq | unsupported |
Chrome | unsupported |
syntax error in "title*"; should fallback to "fallback title"
Result for this UA:
Link: <simple.css>; title*=UTF-8''foobar%; title="fallback title"; rel=stylesheet
Test Results | |
---|---|
FF19 | pass |
MSIE9 | unsupported |
Opera | unsupported |
Safari | unsupported |
Konq | unsupported |
Chrome | unsupported |
syntax error in "title*"; should fallback to "fallback title"
Result for this UA:
Various tests checking CSS stylesheet links.
Link: <simple.css>; ext=foo; rel=stylesheet
Test Results | |
---|---|
FF19 | pass |
MSIE9 | unsupported |
Opera | pass |
Safari | unsupported |
Konq | unsupported |
Chrome | unsupported |
simple CSS link, following an extension parameter
Result for this UA:
Link: <simple.css>; ext="\""; rel=stylesheet
Test Results | |
---|---|
FF19 | pass |
MSIE9 | unsupported |
Opera | pass |
Safari | unsupported |
Konq | unsupported |
Chrome | unsupported |
simple CSS link, following an extension parameter using quoted-string syntax
Result for this UA:
Link: <simple.css>; ext1='start; rel=stylesheet; ext2=end'
Test Results | |
---|---|
FF19 | pass |
MSIE9 | unsupported |
Opera | pass |
Safari | unsupported |
Konq | unsupported |
Chrome | unsupported |
simple CSS link, following an extension parameter using token syntax, containing a single quote
Result for this UA:
Various tests checking parsing of extension link relations.
Link: <simple.css>; rel="http://example.com/myrel stylesheet"
Test Results | |
---|---|
FF19 | pass |
MSIE9 | unsupported |
Opera | pass |
Safari | unsupported |
Konq | unsupported |
Chrome | unsupported |
simple CSS link, where an extension link relation appears before "stylesheet"
Result for this UA:
Various tests checking whether multiple links are handled properly.
Link: <ybg.css>; rel=stylesheet, <simple.css>; rel=stylesheet
Test Results | |
---|---|
FF19 | pass |
MSIE9 | unsupported |
Opera | pass |
Safari | unsupported |
Konq | unsupported |
Chrome | unsupported |
two simple CSS links
Result for this UA:
Link: <ybf.css>; rel=foobar, <simple.css>; rel=stylesheet
Test Results | |
---|---|
FF19 | pass |
MSIE9 | unsupported |
Opera | pass |
Safari | unsupported |
Konq | unsupported |
Chrome | unsupported |
two links, only the 2nd one a stylesheet link
Result for this UA:
Both this document and the indiviual test "scripts" are generated from one single XML source (httplink.xml), using an XSLT2 transformation (httplink.xslt).
To generate the files, an XSLT2 processor such as Saxon 9 is needed. Copy both files into an empty directory, then run:
saxon9 httplink.xml httplink.xslt > index.html
Note that this will also generate a set of "asis" files that contain the actual test cases. These can be served using the Apache httpd mod_asis module.