Bug 50913 - [BiDi] Add support for the BDI element
Summary: [BiDi] Add support for the BDI element
Alias: None
Product: WebKit
Classification: Unclassified
Component: DOM (show other bugs)
Version: 528+ (Nightly build)
Hardware: All OS X 10.5
: P2 Normal
Assignee: Eric Seidel (no email)
URL: http://dev.w3.org/html5/spec/Overview...
Depends on: 50912 68773
Blocks: 50910
  Show dependency treegraph
Reported: 2010-12-13 03:58 PST by Jeremy Moskovich
Modified: 2011-09-25 01:30 PDT (History)
8 users (show)

See Also:

Patch (40.18 KB, patch)
2011-09-08 13:45 PDT, Eric Seidel (no email)
rniwa: review+
webkit.review.bot: commit-queue-
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Jeremy Moskovich 2010-12-13 03:58:18 PST
Quoth the HTML5 spec (at the time of this writing):

Expose unicode-bidi:isolate in HTML by adding an element attribute tentatively named ubi, for "Unicode Bidi Isolate", as in <span dir="rtl" ubi>. Like unicode-bidi:isolate, it would be used to directionally isolate an inline-display element from its surroundings: neither affects the bidi ordering of the other, and no part of the surrounding content gets ordered between parts of the element's content.
Comment 1 Jeremy Moskovich 2010-12-13 04:34:45 PST
Quoting the proper spec this time:

The bdi element represents a span of text that is to be isolated from its surroundings for the purposes of bidirectional text formatting. [BIDI]

The dir global attribute defaults to auto on this element (it never inherits from the parent element like with other elements).

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.

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 (in the same manner that an image or other inline object is handled).

The requirements on handling the bdi element for the bidirectional algorithm may be implemented indirectly through the style layer. For example, an HTML+CSS user agent should implement these requirements by implementing the CSS 'unicode-bidi' property. [CSS]

This element is especially useful when embedding user-generated content with an unknown directionality.

In this example, usernames are shown along with the number of posts that the user has submitted. If the bdi element were not used, the username of the Arabic user would end up confusing the text (the bidirectional algorithm would put the colon and the number "3" next to the word "User" rather than next to the word "posts").

 <li>User <bdi>jcranmer</bdi>: 12 posts.
 <li>User <bdi>hober</bdi>: 5 posts.
 <li>User <bdi>إيان</bdi>: 3 posts.
Comment 2 Ryosuke Niwa 2011-03-03 22:01:06 PST
Does this element act like span + unicode-bidi: isolate?  If so, we should fix 50912 first.
Comment 3 Aharon (Vladimir) Lanin 2011-03-10 04:06:07 PST
(In reply to comment #2)
> Does this element act like span + unicode-bidi: isolate?  If so, we should fix 50912 first.

That is correct, this depends on 50912.
Comment 4 Eric Seidel (no email) 2011-09-08 13:45:46 PDT
Created attachment 106782 [details]
Comment 5 Eric Seidel (no email) 2011-09-08 13:46:35 PDT
This is what we call a "victory lap" patch. :)
Comment 6 WebKit Review Bot 2011-09-08 15:20:18 PDT
Comment on attachment 106782 [details]

Rejecting attachment 106782 [details] from commit-queue.

Failed to run "['/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch', '--status-host=queues.webkit.org', '-..." exit_code: 2

Last 500 characters of output:

Regressions: Unexpected image and text mismatch : (2)
  css3/bdi-element.html = IMAGE+TEXT
  svg/custom/svg-fonts-word-spacing.html = IMAGE+TEXT

Regressions: Unexpected image mismatch : (5)
  fast/text/atsui-multiple-renderers.html = IMAGE
  fast/text/international/danda-space.html = IMAGE
  fast/text/international/thai-baht-space.html = IMAGE
  fast/text/international/thai-line-breaks.html = IMAGE
  platform/chromium-linux/fast/text/international/complex-joining-using-gpos.html = IMAGE

Full output: http://queues.webkit.org/results/9624310
Comment 7 Eric Seidel (no email) 2011-09-08 17:34:01 PDT
Committed r94822: <http://trac.webkit.org/changeset/94822>
Comment 8 Eric Seidel (no email) 2011-09-08 17:34:07 PDT
There is no way for me to get cr-linux results now that the ewses don't post results anymore.  Just landing, the gardener will rebaseline.