Re: dir=auto makes no sense for descendant user-visible attributes

Trying  to summarize ( the idea not the wording...). According to my
current understanding.

We need a way to specify the directionality of attributes when it must
differ from that of the element itself (Use cases needed to support the
proposal). One can make usage of LRE/RLE - PDF, but not very "user
friendly"...

A new attribute, attribsdir="ltr|rtl|auto", is proposed which would
determine the directionality in which the element's user-visible
attributes must be displayed. A very important part of this would be the
default value.

So

  * attribdir = ltr", the element's attributes must be displayed to the
    user with directionality of LTR
  * attribdir = rtl", the element's attributes must be displayed to the
    user with directionality of RTL
  * attribdir = "auto", the direction is computed independently for each
    element's attribute.
  * attribdir not specified
      o There is an element, the closest ancestor or the element itself,
        who have an explicit, valid dir attribute with a value other
        than "auto" ("rtl | ltr"). attribdir have this same value.
      o There is no such element. The element's attributes must be
        displayed to the user with directionality of LTR (HTML default
        directionality)
  * what else...


Right?

Najib



Aharon (Vladimir) Lanin wrote:
> Please note that I did not include the "bell or whistle" of the 
> <input> / <textarea> exception.
>
> On Tue, Feb 28, 2012 at 2:46 PM, Aharon (Vladimir) Lanin 
> <aharon@google.com <mailto:aharon@google.com>> wrote:
>
>     That just makes sure that we have the problem that I brought up.
>     To fix it, one needs the opposite change, i.e. to say "the value
>     of the dir attribute of the element or its closest ancestor having
>     an explicit or default dir attribute value". But I fear that for
>     most people this would be misleading, since most people think, as
>     you did, that the dir attribute inherits. They would not know that
>     the only element that has a default dir value is <bdi>.
>
>     So, once again, please consider using the definition with the
>     dir=auto exception. That is:
>
>     The attribsdir attribute determines the directionality in which
>     the text of the element's attributes must be displayed to the
>     user. For attribsdir="auto", the direction is computed
>     independently for each attribute. If attribsdir is not explicitly
>     specified, the element's attributes must be displayed in the
>     direction specified by the value of the dir attribute of the
>     closest ancestor of the element (or the element itself) having an
>     explicit, valid dir attribute with a value other than "auto". If
>     there is no such element, the attributes must be displayed ltr.
>
>     Aharon
>
>
>     On Tue, Feb 28, 2012 <tel:2012> at 2:08 PM, Matitiahu Allouche
>     <matial@il.ibm.com <mailto:matial@il.ibm.com>> wrote:
>
>         I think it can fixed as follows.
>         Instead of (old phrasing):
>            b. If the element has no attribsdir attribute,  the
>         direction of
>            the text of visible attributes is the same as the value of
>         the dir
>            attribute of the element or its closest ancestor having a dir
>            attribute (if the value is "auto", the direction is computed
>            independently for each visible attribute). If neither the
>         element
>            nor any ancestor has a dir attribute, it is 'ltr'.
>         Let's have (new phrasing):
>            b. If the element has no attribsdir attribute,  the
>         direction of
>            the text of visible attributes is the same as the value of
>         the explicit (not default) dir
>            attribute of the element or its closest ancestor having an
>         explicit (not default) dir
>
>            attribute (if the value is "auto", the direction is computed
>            independently for each visible attribute). If neither the
>         element
>            nor any ancestor has a dir attribute, it is 'ltr'.
>
>         Shalom (Regards),  Mati
>               Bidi Architect
>               Globalization Center Of Competency - Bidirectional Scripts
>               IBM Israel
>               Mobile: +972 52 2554160 <tel:%2B972%2052%202554160>
>
>
>
>
>         From:        "Aharon (Vladimir) Lanin" <aharon@google.com
>         <mailto:aharon@google.com>>
>         To:        Najib Tounsi <ntounsi@emi.ac.ma
>         <mailto:ntounsi@emi.ac.ma>>
>         Cc:        Matitiahu Allouche/Israel/IBM@IBMIL, "Martin J.
>         Dürst" <duerst@it.aoyama.ac.jp
>         <mailto:duerst@it.aoyama.ac.jp>>, Ehsan Akhgari
>         <ehsan@mozilla.com <mailto:ehsan@mozilla.com>>,
>         public-i18n-bidi@w3.org <mailto:public-i18n-bidi@w3.org>
>         Date:        28/02/2012 12:52
>         Subject:        Re: dir=auto makes no sense for descendant
>         user-visible attributes
>         ------------------------------------------------------------------------
>
>
>
>         Oops, I just realized that there is a problem with the
>         simplified formulation. The <bdi> element has dir=auto by
>         default. Thus, the title in <html dir=rtl><bdi dir=auto
>         title="C++"> will be displayed as "C++", but the title
>         in <html dir=rtl><bdi title="C++"> will be displayed as "++C",
>         even though <bdi> is supposed to be the same as <bdi dir=auto>.
>
>         I am not sure how to fix this in the simplified formulation
>         while keeping it simple.
>
>         Please note that my formulation *with* the dir=auto exception
>         does not suffer from this problem. And I am still convinced
>         that it will usually give better results.
>
>         Thoughts?
>
>         Aharon
>
>         On Tue, Feb 28, 2012 <tel:2012> at 11:02 AM, Najib Tounsi
>         <_ntounsi@emi.ac.ma_ <mailto:ntounsi@emi.ac.ma>> wrote:
>         Aharon (Vladimir) Lanin wrote:
>         Ok, so how about we propose it as you have phrased it, but
>         afterwards also list a number of optional "bells and whistles"
>         (input/textarea exception, dir=auto exception, the more
>         complicated syntax). Let the editor reject them. He enjoys
>         doing that anyway :-)
>
>         Ehsan, Najib: is Mati's formulation acceptable to you?
>
>         Yes! This proposal seems clear to me too. I support it. No
>         more need of &#x202B; and &#x202C; :-)
>
>
>         Aharon
>
>
>         On Mon, Feb 27, _2012_ <tel:2012> at 3:50 PM, Matitiahu
>         Allouche <_matial@il.ibm.com_ <mailto:matial@il.ibm.com>
>         <mailto:_matial@il.ibm.com_ <mailto:matial@il.ibm.com>>> wrote:
>
>            Thanks to Aharon for improving the phrasing of my proposal.
>         I now
>            phrase it as follows:
>
>            a. If the element has an attribsdir attribute, the value of
>         this
>            attribute determines the direction of the text of each visible
>            attribute (for attribsdir="auto", the direction is computed
>            independently for each attribute).
>            b. If the element has no attribsdir attribute,  the
>         direction of
>            the text of visible attributes is the same as the value of
>         the dir
>            attribute of the element or its closest ancestor having a dir
>            attribute (if the value is "auto", the direction is computed
>            independently for each visible attribute). If neither the
>         element
>            nor any ancestor has a dir attribute, it is 'ltr'.
>
>            I prefer this simpler specification even at the cost of what
>            Aharon calls a loss of usability. In fact, this loss of
>         usability
>            is that with my spec it is necessary to specify a value for
>            attribsdir in cases when this would not be needed with Aharon's
>            specification. There is no case that can be handled with
>         Aharon's
>            spec and cannot be handled with mine.
>            Simple wins, IMHO.
>
>            Aharon wrote: "I presume this means that you would be against
>            allowing attribsdir to take a more complicated (explicit) value
>            like "title:ltr;placeholder:rtl", correct?"
>            I think that this a nice syntactic format, but since it has not
>            found its place in HTML until now, and since it is possible to
>            express the same meaning with formats already existing in
>         HTML, I
>            would rather not introduce it, to say nothing on the fact
>         that its
>            chances to be accepted by the WHATWG seem very slim.
>
>
>            Shalom (Regards),  Mati
>                  Bidi Architect
>                  Globalization Center Of Competency - Bidirectional
>         Scripts
>                  IBM Israel
>                  Mobile: _+972 52 2554160_ <tel:%2B972%2052%202554160>
>         <tel:%2B972%2052%202554160>
>
>
>
>
>
>            From:        "Aharon (Vladimir) Lanin" <_aharon@google.com_
>         <mailto:aharon@google.com>
>            <mailto:_aharon@google.com_ <mailto:aharon@google.com>>>
>
>            To:        Matitiahu Allouche/Israel/IBM@IBMIL
>            Cc:        Ehsan Akhgari <_ehsan@mozilla.com_
>         <mailto:ehsan@mozilla.com>
>            <mailto:_ehsan@mozilla.com_ <mailto:ehsan@mozilla.com>>>,
>         Martin J. Dürst
>            <_duerst@it.aoyama.ac.jp_ <mailto:duerst@it.aoyama.ac.jp>
>         <mailto:_duerst@it.aoyama.ac.jp_
>         <mailto:duerst@it.aoyama.ac.jp>>>,
>            _public-i18n-bidi@w3.org_ <mailto:public-i18n-bidi@w3.org>
>         <mailto:_public-i18n-bidi@w3.org_
>         <mailto:public-i18n-bidi@w3.org>>
>
>            Date:        27/02/2012 14:09
>            Subject:        Re: dir=auto makes no sense for descendant
>            user-visible attributes
>          
>          ------------------------------------------------------------------------
>
>
>
>            See below
>
>            On Sun, Feb 26, _2012_ <tel:2012> <tel:_2012_ <tel:2012>>
>         at 5:13 PM, Matitiahu Allouche
>
>            <_matial@il.ibm.com_ <mailto:_matial@il.ibm.com_
>         <mailto:matial@il.ibm.com>>> wrote:
>            I am afraid that I have no  silver bullet for this issue, and I
>            will go along with Aharon's proposal, but with some needed
>         (IMHO)
>            simplification, because if it needs 9 examples to describe it
>
>            The examples are not there to describe it, and I was not
>         trying to
>            give as few examples as possible. I give a definition, and it's
>            not complicated. But let me re-phrase the definition of the
>            default value of attribsdir even more simply:
>
>            - If the element is not <input> or <textarea>, and has a dir
>            attribute with a value other than auto, the same as its dir
>            attribute.
>            - Otherwise, if any ancestor of the element has a dir attribute
>            with a value other than auto, the same as the dir attribute
>         of the
>            closest such ancestor
>            - Otherwise, 'ltr'.
>
>            , it is too complicated for my feeble mind.
>            So here is what I propose.
>            a. If attribsdir is not specified and the element has
>         (explicitly
>            or by inheritance) a dir different from auto, its dir
>         applies to
>            its visible attributes (no change from current spec).    
>         b. If attribsdir is not specified and the element has dir=auto
>            (explicitly or by inheritance), dir=auto also applies
>            independently to each of the visible attributes.
>            c. If attribsdir is specified, it overrides the dir of the
>            element. If attribsdir=auto, the direction is computed
>            independently for each of the visible attributes.
>
>            I do not think that the definition can be phrased in terms
>         of dir
>            inheritance because the dir attribute does not inherit. For
>            example, <span dir=ltr>&#x05D0;<span
>            dir=ltr>bc</span>&#x05D3;</span> is *not* the same as <span
>            dir=ltr>&#x05D0;<span>bc</span>&#x05D3;</span> (the first comes
>            out דbcא, while the second comes out אbcד).
>
>            Thus, I would phrase the definition you are proposing (for the
>            attribsdir default value) as:
>
>            - If the element has a dir attribute, the same as its dir
>         attribute.
>            - Otherwise, if any ancestor of the element has a dir
>         attribute,
>            the same as the dir attribute of the closest such ancestor.
>            - Otherwise, 'ltr'.
>
>            Or, perhaps more simply, as: The default value of attribsdir is
>            the same as the value of the dir attribute of the element
>         or its
>            closest ancestor having a dir attribute. If neither the element
>            nor any ancestor has a dir attribute, it is 'ltr'.
>
>            There are two simplifications in this definition compared
>         to mine:
>            - no exception for <input> and <textarea>
>            - no exception for dir=auto
>
>            I can live with either or both of these simplifications, even
>            though I think that usually the results would be better without
>            the simplifications. However, I would prefer to let the
>         HTML5 spec
>            editor be the one to make simplifications that only make the
>            definition simpler, not more usable.
>            
>            Unless I am wrong (it has happened in the past), this proposal
>            creates no backward compatibility problem,
>
>            Correct.
>                 it is easy to understand and it allows any weird
>         combination of
>            different directions for element data and attributes' text
>         to be
>            solved by specifying attribsdir=auto and prefixing the
>         attribute
>            value by &lrm; or &rlm; as needed.
>
>            True.
>
>            I presume this means that you would be against allowing
>         attribsdir
>            to take a more complicated (explicit) value like
>            "title:ltr;placeholder:rtl", correct?
>
>
>            Shalom (Regards),  Mati
>                  Bidi Architect
>                  Globalization Center Of Competency - Bidirectional
>         Scripts
>                  IBM Israel
>                  Mobile: __+972 52 2554160_
>         <tel:%2B972%2052%202554160>_ <tel:%2B972%2052%202554160>
>
>
>
>
>            From:        Ehsan Akhgari <_ehsan@mozilla.com_
>            <mailto:_ehsan@mozilla.com_ <mailto:ehsan@mozilla.com>>>
>            To:        "Aharon (Vladimir) Lanin" <_aharon@google.com_
>            <mailto:_aharon@google.com_ <mailto:aharon@google.com>>>
>            Cc:        _public-i18n-bidi@w3.org_
>            <mailto:_public-i18n-bidi@w3.org_
>         <mailto:public-i18n-bidi@w3.org>>, Martin J. Dürst
>            <_duerst@it.aoyama.ac.jp_ <mailto:_duerst@it.aoyama.ac.jp_
>         <mailto:duerst@it.aoyama.ac.jp>>>
>
>            Date:        24/02/2012 19:30
>            Subject:        Re: dir=auto makes no sense for descendant
>            user-visible attributes
>          
>          ------------------------------------------------------------------------
>
>
>
>
>
>
>            I'm fine with attribsdir as you proposed, although I'm not
>         quite
>            sure about the more complex syntax, since it's so different
>         to the
>            way other attributes in HTML work.
>
>            Let's hear what others think.
>
>            Cheers,
>            --
>            Ehsan
>            <__http://ehsanakhgari.org/__>
>
>
>            On Thu, Feb 23, __2012_ <tel:2012>_ <tel:_2012_ <tel:2012>>
>         at 11:53 PM, Aharon (Vladimir)
>
>            Lanin <_aharon@google.com_ <mailto:_aharon@google.com_
>         <mailto:aharon@google.com>>> wrote:
>            Good example.
>
>            In the past, Ian has already rejected titledir etc.
>
>            Perhaps they will be more receptive to attribsdir, since
>         it's just
>            one attribute and tackles some serious problems.
>
>            Your example could be handled by also allowing syntax like
>            "title:rtl;placeholder:ltr". Even just " placeholder:ltr"
>         could do
>            if the other attributes then follow the default (which in this
>            case would presumably be rtl despite dir=ltr on the <input>).
>            Since it does not inherit, there would not be too much
>         difficulty
>            supporting the complex syntax.
>
>            But attribsdir would still be useful even if it only allowed a
>            simple value.
>
>            Aharon
>
>            On Feb 23, __2012_ <tel:2012>_ <tel:_2012_ <tel:2012>> 6:11
>         PM, "Ehsan Akhgari"
>
>            <_ehsan@mozilla.com_ <mailto:_ehsan@mozilla.com_
>         <mailto:ehsan@mozilla.com>>> wrote:
>            How about something like:
>
>            <input name="phone" title="TELEPHONE" placeholder="(123)
>         456-7890">
>
>            If we introduce an attribsdir attribute, I can see people
>         asking
>            to differentiate between different attributes, such as the
>         example
>            above.  From a bidi perspective, the ultimate solution is
>         to have
>            a directional attribute for every user visible attribute,
>         such as
>            titledir, placeholderdir, etc.  But honestly I don't expect
>         such a
>            proposal to be easily accepted in WHATWG, given the recent
>            resistance towards placeholderdir.
>
>            --
>            Ehsan
>            <__http://ehsanakhgari.org/__>
>
>
>            On Thu, Feb 23, __2012_ <tel:2012>_ <tel:_2012_ <tel:2012>>
>         at 6:49 AM, Aharon (Vladimir)
>
>            Lanin <_aharon@google.com_ <mailto:_aharon@google.com_
>         <mailto:aharon@google.com>>> wrote:
>            Well, I, for one, am not so happy with my proposal :-).
>
>            Its solution is to apply dir=auto to the individual
>         user-visible
>            attributes, even though in most cases the values of such
>            attributes are not dynamic, but localized to the page
>         locale, e.g.
>            (in an English page) <input dir="auto" name="purpose"
>            placeholder="The purpose of your visit.">. Using estimation for
>            them is not just wasteful, but bound to reach the wrong
>         conclusion
>            occasionally.
>
>            And it does not address the long-standing issue of no way
>         to set
>            the directionality of an attribute (other than using formatting
>            characters). The canonical examples are:
>
>            - <input dir="ltr" name="telephone" title="PHONE NUMBER.">,
>         which
>            has to be worked around as <span title="PHONE NUMBER."><input
>            dir="ltr" name="telephone"></span>
>            - <input dir="ltr" name="telephone" placeholder="PHONE
>         NUMBER.">,
>            which has no workaround other than RLE + PDF.
>
>            What if we could instead have a new attribute,
>            attribsdir="ltr|rtl|auto", which would determine the
>            directionality in which the element's user-visible
>         attributes must
>            be displayed. A very important part of this would be the
>         default
>            value. IMO, it would be best if it could default to the dir
>            attribute value of the closest ancestor - or the element itself
>            unless it is <input> or <textarea> - that has an explicit dir
>            attribute with a value other than "auto". If there is no such
>            ancestor, the default is "ltr". Thus:
>
>            - the only way to get attribsdir=auto is to specify it
>         explicitly
>            - the explicit dir attribute value of <input> and <textarea>,
>            which is presumably meant to correspond to the
>         directionality of
>            their content, not their user-visible attributes, does not
>         affect
>            their default attribsdir.
>            - with the exceptions of <input dir="...">, <textarea
>         dir="...">,
>            and <whatever dir=auto>, the result is backward-compatible.
>
>            Examples:
>
>            1. <html><body><div title="?">: ltr
>
>            2. <html dir=rtl><body><div title="?">: rtl
>
>            3. <html><body><div dir=rtl title="?">: rtl
>
>            4. <html><body><div><div dir=rtl><div><div title="?">: rtl
>
>            5. <html dir=rtl><body><div><input dir=ltr title="?"> : rtl
>
>            6. <html><body><div dir=rtl><div dir="auto"
>         title="?">hello</div>:
>            rtl
>
>            7. <html><body><div dir=rtl><div dir="auto">ltr
>            content<div title="?">: rtl
>
>            8. <html dir=rtl><body><div title="?" attribsdir="ltr">: ltr
>
>            9. <html dir=rtl><body><div title="?" attribsdir="auto">: auto
>
>            Even if we couldn't get the <input> and <textarea>
>         exception, we
>            would still be ok - the page would just have to
>            specify attribsdir explicitly on the problematic inputs.
>
>            Aharon
>
>            On Thu, Feb 23, __2012_ <tel:2012>_ <tel:_2012_ <tel:2012>>
>         at 11:32 AM, "Martin J. Dürst"
>
>            <_duerst@it.aoyama.ac.jp_ <mailto:_duerst@it.aoyama.ac.jp_
>         <mailto:duerst@it.aoyama.ac.jp>>> wrote:
>            On 2012/02/23 1:11, Ehsan Akhgari wrote:
>            On Wed, Feb 22, __2012_ <tel:2012>_ <tel:_2012_ <tel:2012>>
>         at 10:04 AM, Aharon (Vladimir)
>            Lanin<_aharon@google.com_ <mailto:_aharon@google.com_
>         <mailto:aharon@google.com>>
>
>            wrote:
>
>            One possibility is to divorce user-visible attributes from
>         their
>            elements'
>            directionality completely, always estimating the
>         directionality of
>            each
>            attribute by its content. This suffers from backwards
>         compatibility
>            problems (since estimation is a heuristic that sometimes
>         gives the
>            wrong
>            answer).
>
>            A better possibility is to divorce it only for elements
>         under the
>            influence of dir=auto. Thus, if an element has dir=auto
>         (explicitly or
>            implicitly, the latter being the case for<bdi>), each of the
>            attributes in
>            the subrtree rooted at that element, with the exception of
>         elements
>            specifying dir="ltr" or dir="rtl" and their descendants,
>         must be
>            displayed
>            to the user as if they had a dir=auto of heir own.
>
>
>            I like the second proposal better.  Although I have to say
>         that it
>            has been
>            worded a bit vaguely.  What I have in mind is for the title
>            attribute in
>            the following example to have a resolved RTL direction:
>
>            <p dir="auto" title="RTL TEXT followed by ltr text">ltr text
>            FOLLOWED BY
>            RTL TEXT</p>
>
>            I agree with Ehsan that the second proposal is better. It's
>            something that comes quite naturally once one gets used to it.
>
>            Regards,    Martin.
>
>
>
>
>
>         -- 
>         Najib TOUNSI (tounsi at _w3.org_ <http://w3.org/>)
>         W3C Office in Morocco (_http://www.w3c.org.ma/_)
>         Ecole Mohammadia d'Ingénieurs, BP. 765 Agdal-RABAT Morocco
>         Mobile: _+212 (0) 661 22 00 30_
>         <tel:%2B212%20%280%29%20661%2022%2000%2030>
>
>
>
>
>

-- 
Najib TOUNSI (tounsi at w3.org)
W3C Office in Morocco (http://www.w3c.org.ma/)
Ecole Mohammadia d'Ingénieurs, BP. 765 Agdal-RABAT Morocco
Mobile: +212 (0) 661 22 00 30 

Received on Tuesday, 28 February 2012 20:05:34 UTC