Visually, placeholder is certainly more like a value than a name/description. However, arguably, it is semantically different to a value in that it's more of a hint for the user as to what to enter there. The reason for the name mapping was partially because it's a nice fallback: having no label at all is probably an authoring error, so it's reasonable to fall back to placeholder.

I think I originally supported the description idea, but on further reflection, I'm not so sure this isn't going to cause problems. It just occurred to me that if an author sets title or aria-describedby, that will get mapped to description, thus killing the placeholder. So, we definitely need to expose the placeholder attribute. However, once we have that (plus AT support), we then always have to compare description with placeholder "just in case", which is pretty ugly. Name is different because while no name is probably authoring error, no description certainly isn't.

In short, I'd like to propose that we:
1. Expose the placeholder attribute;
2. Keep the current behaviour of falling back to placeholder for name as a last resort;
3. When 1) happens, expose explicit-name:false;
4. Don't ever fall back to placeholder for description.

Jamie

On 15/09/2016 2:38 AM, Alexander Surkov wrote:
Jamie, do you have objections?

On Wed, Sep 14, 2016 at 12:30 PM, Brett Lewis <[email protected] <mailto:[email protected]>> wrote:

    Hi,

    I have always thought of the placeholder more like a value for the
    edit field rather than a name or description.

    However, I think the important thing is that we have a mechanism
    that allows assistive technology to “know” that the place holder
    is present and what the value of the placeholder is.

    Your suggestions accomplish that.

    Brett

    *Brett Lewis*

    *VFO*| Software Engineer

    11800 31^st Court North, St. Petersburg, FL 33716

    *T*727-299-6270 <tel:727-299-6270>

    [email protected] <mailto:[email protected]>

    www.vfo-group.com <http://www.vfo-group.com>__

    *From:*Alexander Surkov [mailto:[email protected]
    <mailto:[email protected]>]
    *Sent:* Tuesday, September 13, 2016 1:52 PM
    *To:* Brett Lewis <[email protected]
    <mailto:[email protected]>>; James Teh <[email protected]
    <mailto:[email protected]>>
    *Cc:* [email protected]
    <mailto:[email protected]>
    *Subject:* Re: [Accessibility-ia2] HTML placeholder attribute

    Hi, Brett and all.

    There's some discrepancy in the specs between UIA and IAccessible2
    mappings. UIA column states [1] that HTML placeholder is mapped to
    accessible name and description, while IAccessible2 column says
    HTML placeholder has same mapping as aria-placeholder.
    aria-placeholder is exposed it in AriaProperties [2] for UIA and
    as object attribute for IAccessible2, the generic name computation
    doesn't mention aria-placeholder [3].

    Leaving aside the specs, in case of IAccessible2 Firefox does
    similar things to UIA. Iirc we agreed [4] to expose placeholder as
    name/description, because it requires zero adoption efforts from
    AT, and since nobody claimed they need semantics of placeholder.

    If semantics loss is crucial for you, then I think we could fix it
    by exposing HTML placeholder this way:

    * name and description as Firefox does (fix the spec to make it clear)

    * expose placeholder object attribute

    * do not expose explicit-name='true' object attribute if
    placeholder was used as name

    aria-placeholder may be left with the current mapping. How does it
    sound?


    [1] https://w3c.github.io/aria/html-aam/html-aam.html
    <https://w3c.github.io/aria/html-aam/html-aam.html>
    [2] http://rawgit.com/w3c/aria/master/accname-aam/accname-aam.html
    <http://rawgit.com/w3c/aria/master/accname-aam/accname-aam.html>
    [3] https://w3c.github.io/aria/accname-aam/accname-aam.html
    <https://w3c.github.io/aria/accname-aam/accname-aam.html>
    [4] https://bugzilla.mozilla.org/show_bug.cgi?id=545817
    <https://bugzilla.mozilla.org/show_bug.cgi?id=545817>

    On Thu, Sep 8, 2016 at 11:07 AM, Brett Lewis <[email protected]
    <mailto:[email protected]>> wrote:

        Hi All:

        I have been looking at how the HTML placeholder attribute is
        supported by IA2.

        According to the HTML accessibility API mappings at:
        https://www.w3.org/TR/html-aam-1.0/
        <https://www.w3.org/TR/html-aam-1.0/>

        The placeholder in HTML should be handled just like the
        aria-placeholder.

        According to the core api accessibility mappings
        http://w3c.github.io/aria/core-aam/core-aam.html
        <http://w3c.github.io/aria/core-aam/core-aam.html>

        The aria-placeholder is mapped to an Ia2 object attribute of
        placeholder.

        So, it sounds like the HTML placeholder should be mapped to an
        IA2 object attribute of placeholder.

        Currently Firefox seems to support the placeholder as the name
        of the field if there is no other name provided by the page
        author (from
        https://bugzilla.mozilla.org/show_bug.cgi?id=545817
        <https://bugzilla.mozilla.org/show_bug.cgi?id=545817>.

        This seems to contradict the description of aria-placeholder from

        the WAI-ARIA) 1.1 spec at
        http://rawgit.com/w3c/aria/master/aria/aria.html#aria-placeholder
        <http://rawgit.com/w3c/aria/master/aria/aria.html#aria-placeholder>

        Says:

        “[ARIA 1.1] Defines a short hint (a word or short phrase)
        intended to aid the user with data entry when the control has
        no value. A hint could be a sample value or a brief
        description of the expected format.

        Authors should not use aria-placeholder

        instead of a label as their purposes are different: The label
        indicates what kind of information is expected. The
        placeholder text is a hint about the

        expected value. See related aria-labelledby and aria-label.

        Authors should present this hint to the user by displaying the
        hint text at any time the control's value is the empty string.
        This includes cases where

        the control first receives focus, and when users remove a
        previously-entered value.

        NOTE

        As is the case with the related HTML placeholder

        attribute, use of placeholder text as a replacement for a
        displayed label can reduce the accessibility and usability of
        the control for a range of users

        including older users and users with cognitive, mobility, fine
        motor skill or vision impairments. While the hint given by the
        control's label is shown

        at all times, the short hint given in the placeholder
        attribute is only shown before the user enters a value.
        Furthermore, placeholder text may be mistaken for a pre-filled
        value, and as commonly implemented the default color of the
        placeholder text provides insufficient contrast and the lack
        of a separate visible label reduces the size of the hit region
        available for setting focus on the control.”

        I am suggesting that we all agree to present the HTML
        placeholder just like the aria-placeholder using the IA2
        object attribute of placeholder?

        This provides the most flexibility for screenreaders to
present the placeholder information anyway they see fit. Using the placeholder as the name is not as flexible as the
        screenreader cannot distinguish between the placeholder and
        the label in this case.

        What does everyone think?

        Thanks,

        Brett

        *Brett Lewis*

        *VFO*| Software Engineer

        11800 31^st Court North, St. Petersburg, FL 33716

        *T*727-299-6270 <tel:727-299-6270>

        [email protected] <mailto:[email protected]>

        www.vfo-group.com <http://www.vfo-group.com>


        _______________________________________________
        Accessibility-ia2 mailing list
        [email protected]
        <mailto:[email protected]>
        https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
        <https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2>



--
James Teh
Executive Director, NV Access Limited
Ph +61 7 3149 3306
www.nvaccess.org
Facebook: http://www.facebook.com/NVAccess
Twitter: @NVAccess
SIP: [email protected]

_______________________________________________
Accessibility-ia2 mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2

Reply via email to