Summarized test results:
HTML5, bdi

To run the test, or to see detailed, per character, results, click on the link in the left-most column. To see detailed results click on a row and look just above the table.

Where the instructions tell you to look for red characters, these characters should be clearly discernable behind the black text of the test – ignore any anti-aliasing 'glow'.

Key: pass fail partially successful

Updated

These tests check whether browsers correctly handle the bdi element, to improve handling of bidirectional text in languages such as Arabic, Hebrew, Persian, Thaana, Urdu, etc.


Basic tests

These basic tests check that the bdi element directionally isolates the text inside from that outside, and that it applies first-strong rules to determine the base direction of the text inside it.

Links to run testsAssertionsGecko FirefoxBlink ChromeBlink EdgeWebkit Safari
bdi isolation
the-bdi-element-001.html
The bdi element isolates following numbers from RTL text. passpasspasspass
bdi first-strong
the-bdi-element-002.html
The bdi element applies base direction based on the first strong directional character it contains. passpasspasspass

Other tests

These other tests check for edge cases.

Links to run testsAssertionsGecko FirefoxBlink ChromeBlink OperaWebkit SafariLegacy EdgeIE
bdi has dir=auto by default
the-bdi-element-080.html
The dir global attribute defaults to auto on this element (it never inherits from the parent element like with other elements). passpasspasspassfailfail
BDI: neutral to following number
the-bdi-element-081.html
For the purposes of applying the bidirectional algorithm to the paragraph-level container that a bdi element finds itself within, the bdi element must be treated like a U+FFFC OBJECT REPLACEMENT CHARACTER. passpasspasspasspassfail
BDI: neutral when BR
the-bdi-element-082.html
'For the purposes of applying the bidirectional algorithm to the paragraph-level container that a bdi element finds itself within, the bdi element must be treated like a U+FFFC OBJECT REPLACEMENT CHARACTER.' Thus, a BDI containing a BR (which serves as a paragraph break in the content of the BDI) must not serve as a paragraph break in the content around the BDI. failfailfailfailfailfail
BDI: neutral when contains LRO or RLO without PDF
the-bdi-element-083.html
For the purposes of applying the bidirectional algorithm to the paragraph-level container that a bdi element finds itself within, the bdi element must be treated like a U+FFFC OBJECT REPLACEMENT CHARACTER. Thus, if a BDI contains LRO or RLO characters lacking a matching PDF, these must not affect the visual ordering of the content outside the BDI. passpasspasspassfailfail
BDI: neutral when nested
the-bdi-element-084.html
For the purposes of applying the bidirectional algorithm to the paragraph-level container that a bdi element finds itself within, the bdi element must be treated like a U+FFFC OBJECT REPLACEMENT CHARACTER. This must apply when a BDI is nested within a BDI. passpasspasspassfailfail
BDI: neutral when number
the-bdi-element-085.html
'For the purposes of applying the bidirectional algorithm to the paragraph-level container that a bdi element finds itself within, the bdi element must be treated like a U+FFFC OBJECT REPLACEMENT CHARACTER.' passpasspasspassfailfail
BDI: paragraph-level container
the-bdi-element-086.html
For the purposes of applying the bidirectional algorithm to the paragraph-level container that a bdi element finds itself within, the bdi element must be treated like a U+FFFC OBJECT REPLACEMENT CHARACTER. Thus, under no circumstances should any part of the content outside a BDI be visually reordered inside the BDI's content. passpasspasspasspassfail
BDI: neutral to following letter
the-bdi-element-087.html
For the purposes of applying the bidirectional algorithm to the paragraph-level container that a bdi element finds itself within, the bdi element must be treated like a U+FFFC OBJECT REPLACEMENT CHARACTER. passpasspasspassfailfail
BDI: neutral to immediately following letter
the-bdi-element-088.html
For the purposes of applying the bidirectional algorithm to the paragraph-level container that a bdi element finds itself within, the bdi element must be treated like a U+FFFC OBJECT REPLACEMENT CHARACTER. passpasspasspassfailfail
BDI: neutral to preceding letter
the-bdi-element-089.html
For the purposes of applying the bidirectional algorithm to the paragraph-level container that a bdi element finds itself within, the bdi element must be treated like a U+FFFC OBJECT REPLACEMENT CHARACTER. passpasspasspassfailfail
BDI: neutral to immediately preceding letter
the-bdi-element-090.html
'For the purposes of applying the bidirectional algorithm to the paragraph-level container that a bdi element finds itself within, the bdi element must be treated like a U+FFFC OBJECT REPLACEMENT CHARACTER.' passpasspasspassfailfail
BDI: neutral to immediately following number
the-bdi-element-091.html
'For the purposes of applying the bidirectional algorithm to the paragraph-level container that a bdi element finds itself within, the bdi element must be treated like a U+FFFC OBJECT REPLACEMENT CHARACTER.' passpasspasspassfailfail
BDI: neutral to surrounding letters
the-bdi-element-092.html
'For the purposes of applying the bidirectional algorithm to the paragraph-level container that a bdi element finds itself within, the bdi element must be treated like a U+FFFC OBJECT REPLACEMENT CHARACTER.' Thus, regardless of its content and its dir attribute (if any), a BDI will not prevent a strongly RTL (or LTR) character preceding it from forming a single directional run with another strongly RTL (LTR) character following it. passpasspasspassfailfail
BDI: neutral when wrapped
the-bdi-element-093.html
For the purposes of applying the bidirectional algorithm to the paragraph-level container that a bdi element finds itself within, the bdi element must be treated like a U+FFFC OBJECT REPLACEMENT CHARACTER. Obviously, this should hold even if the BDI's content is wrapped over more than one line. A single character (U+FFFC or otherwise) obviously never gets wrapped over more than one line, but we still expect the part of the content preceding the BDI, if any, that is displayed on the same line as some part of the BDI to be ordered the same as it would be if that part of the BDI were replaced with U+FFFC. Similarly, we expect the part of the content following the BDI, if any, that is displayed on the same line as some part of the BDI to be ordered the same as it would be if that part of the BDI were replaced with U+FFFC. passpasspasspassfailfail
BDI: paragraph-level container
the-bdi-element-094.html
For the purposes of applying the bidirectional algorithm to the contents of a bdi element, user agents must treat the element as a paragraph-level container. Thus, under no circumstances should the content outside a BDI affect the visual ordering of the BDI's content. passpasspasspasspassfail
BDI: neutral to another BDI
the-bdi-element-095.html
'For the purposes of applying the bidirectional algorithm to the paragraph-level container that a bdi element finds itself within, the bdi element must be treated like a U+FFFC OBJECT REPLACEMENT CHARACTER.' Thus, when a BDIs contains text of the same strong direction as another BDI following it, the two must not form a directional run as would be the case if the BDIs were just SPANs. passpasspasspassfailfail
BDI: neutral to another immediately following BDI
the-bdi-element-096.html
'For the purposes of applying the bidirectional algorithm to the paragraph-level container that a bdi element finds itself within, the bdi element must be treated like a U+FFFC OBJECT REPLACEMENT CHARACTER.' Thus, when a BDIs contains text of the same strong direction as another BDI following it, the two must not form a directional run as would be the case if the BDIs were just SPANs, even if the two BDIs are not separated by anything at all. passpasspasspassfailfail