Re: HTML5 and ruby

Richard Ishida on Thu, 12 Jan 2012 15:53:43

> In order to help focus the discussions on the bugzilla threads at
> https://www.w3.org/Bugs/Public/show_bug.cgi?id=10830 (Please add support 
> for rb) and https://www.w3.org/Bugs/Public/show_bug.cgi?id=13113

> I produced a wiki page at http://www.w3.org/International/wiki/Rb

> that shows alternative approaches that meet various use cases, and 
> offers pros and cons for each.

Regarding the wiki page, then it uses the wordings 'simple ruby' and 
'complex ruby' differently from how it they are understood in the Ruby 
Annotation XHTML module, which says 
<http://www.w3.org/TR/ruby/#markup-overview>:

   ]]  Simple ruby markup associates a single ruby text with a
       run of base text. [[

By contrast, the first time you use the wording 'simple ruby' 
<http://www.w3.org/International/wiki/Rb#2_Ruby_base_styling>, you say 
this:

   ]] Use the current html5 model for simple ruby, eg.
      <ruby>base1<rt>rt1</rt>base2<rt>rt2</rt><ruby>  [[

But according to the XHTML Ruby Annoatation module, then the above does 
not count as simple Ruby. That said, the XHTML Ruby module also says:

   ]] Simple ruby markup can also specify a fallback mechanism [ snip ]
      However, complex ruby markup does not provide a fallback mechanism
      for browsers that do not understand ruby markup. [[

(The fallback mechanism is of course the <rp></rp> element.)

From this we can conclude that the HTML5 module is not equivalent to 
complex ruby, but it is also not equivalent to simple ruby. Instead, it 
is something in between: From simple ruby, it inherits the ability to 
offer 'fallback parenthesis'. From complex ruby, it inherits the 
ability to have more than one ruby base text within the same <ruby> 
element. May be the best description of HTML5 would be to say that it 
allows several 'simple rubies' inside the same <ruby>. Which, in turn, 
makes me wonder how useful the HTML5 model is. See below.

In the Wiki, the first time you talk about 'complex ruby', is in the 
context of 'Fallback for multiple bases in one paren[thesis]' 
<http://www.w3.org/International/wiki/Rb#3_Fallback_for_multiple_bases_in_one_paren>. 
That kind of parenthesis seems like a good idea. However, I will just 
point out that in the XHTML Ruby Module, there is no such option - this 
is a new thing that you would like to introduce.

Ii think it is remarkable that your Wiki page does not contain a 
*single* example of the <rp> element - *not even* under the above 
mentioned section on 'Fallback for multiple bases in one 
paren[thesis]'! Is this a bug? For instance, you claim that this could 
allow for [parenthesis] fallaback:

<ruby>
   <rb>東</rb><rb>京</rb>
   <rt>とう</rt><rt>きょう</rt>
</ruby>

But perhaps you meant this - would this work: ?

<ruby>
   <rb>東</rb><rb>京</rb>
   <rp>(</rp><rt>とう</rt><rt>きょう</rt><rp>)</rp>
</ruby>

I note that this would work fine in IE, but not 100% in Webkit. 
Probably, if one could have a wrapper around the column of <rt> 
elements, then one could make it work in Webkit too.

This makes me wonder how useful the HTML5 model is. The above makes 
sense: It is, as you said, simplified complex ruby - it is complex ruby 
where the wrappers have been omitted. WHereas, by contrast, the HTML5 
model is a model where you are permitted to join several simple rubies 
- without wrapper - inside a common wrapper. Thus, HTML5 allows this:

<ruby><ruby>base<rt>txt</ruby><ruby>base<rt>txt</ruby></ruby>

but demands that you write it as

<ruby>base<rt>txt</rt>base<rt>txt</rt></ruby>

> Please give your opinions, with reasoned arguments, on which approaches 
> work best. Please try not to focus on one small aspect, but consider 
> things within the wider framework. Note that we are not focusing on the 
> legacy usage of rb as much as on how to make the markup as simple and 
> effective as possible going forward.
> 
> Here are some key questions:
> 
> 1. do we need rb for simple ruby, or will span suffice? (take into 
> account the use case related to fallback)

Suffice for what? For what purpose? In my CP, I say that it is 
important for making existing 'simple ruby' (per XHTML Ruby Module) 
HTML5-compatible, per the letter. Further, this allows, as well to use 
existing tools for creating 'simple ruby'. Further, it allows authoring 
tools to work have a base wrapper, so that the author/tool does not 
have to ad-hoc one, s they go. It also offers a CSS2 selector. And 
makes the base text ready to receive metadata. See 
<http://www.w3.org/html/wg/wiki/IncludeRB#Summary>. 

If your question only is about *display* - and thus CSS styling, then, 
as far as 'simple ruby' is concerned (= what the XHTML Ruby Module 
means by 'simple ruby'), then (as long as we only consider display 
issues), the answer is 'no'. It is pretty simple to make the text look 
like ruby, using e.g. ruby{display:inline-table} and e.g. 
rt{display:table-header-group}. It is not necessary to style the <rb> 
directly - it suffices to style the <rt>. 

But if, by 'simple ruby', you mean 'the current HTML5 ruby model', with 
multiple base text separated with ruby text in between, then a ruby 
base wrapper comes in handy when we try to style the text as ruby.

> 2. do we need rb and rtc for complex ruby support, or is it sufficient 
> to rely on a mixture of recursive ruby markup plus a second <rt> element 
> (depending on the use case)?

The wording 'recursive ruby markup' does not occur in the Wiki page. Do 
you mean nested ruby - like so: <ruby><ruby/></ruby> ? A reason why 
<ruby><ruby/></ruby> (nested ruby) does not work is that IE does not 
support it. The only way to make something that works in IE, is thus by 
using <rbc>.

> I look forward to hearing from you.  To avoid fragmentation, and because 
> we can't discuss rb without discussing complex ruby, the i18n WG 
> proposes that we make our comments on this list, and then put a summary 
> proposal to the editor before the deadline for the change proposal.

I hope for comments on the above, before I eventually add more.
-- 
Leif Halvard Silli

Received on Thursday, 12 January 2012 22:59:55 UTC