[webkit-dev] Implementation thoughts on HTML5 elements

Leo Meyerovich lmeyerov at eecs.berkeley.edu
Wed Aug 26 00:21:17 PDT 2009


Likely the ones you considered "trivial". E.g., "nav".

- Leo



Maciej Stachowiak wrote:
>
> On Aug 26, 2009, at 12:04 AM, Leo Meyerovich wrote:
>
>> These are unnecessary features wrt accessiblity tools and search 
>> engines; data mining techniques can easily handle them already. More 
>> strongly, for legacy and advanced UI reasons, the data mining should 
>> happen anyways, further questioning their merit. That's been my 
>> experience in this area (from the analysis side). Features that 
>> provide actual functionality would seem more pressing.
>
> Can you please clarify what features you have in mind? Most of the new 
> elements I mentioned do provide substantive functionality.
>
> Regards,
> Maciej
>
>>
>> - Leo
>>
>>
>>
>>
>> Maciej Stachowiak wrote:
>>>
>>> On Aug 25, 2009, at 11:21 PM, Maciej Stachowiak wrote:
>>>
>>>> Hi everyone,
>>>>
>>>> Recently at Apple we've been considering our plans to implement new 
>>>> HTML elements from HTML5. I'd like to share our thoughts with the 
>>>> WebKit community and see if we are in sync before passing this on 
>>>> to the HTML Working Group. Does anyone have thoughts to add to the 
>>>> below:
>>>>
>>>> ----------
>>>
>>> I realized I forgot to cover <command> and <menu>.
>>>
>>> - <menu>
>>>  The list form of a menu seems straightforward enough, it is good to 
>>> have a list type specifically for popup menus. The toolbar form does 
>>> not seem fully baked. First, it seems weird to think of a toolbar as 
>>> a kind of menu. Second, the rendering is too inflexible and 
>>> underspecified for the real Web content authoring use cases for 
>>> toolbars. And finally, an important point of toolbars in many 
>>> applications is that they can embed custom controls in a flexible 
>>> layout that also includes some standard buttons, but <menu 
>>> type="toolbar"> does not seem flexible enough to handle this. The 
>>> context menu form does seem genuinely useful. But it also seems like 
>>> a lot of complexity for the somewhat marginal case of overriding the 
>>> context menu. It seems like about a dozen different elements are 
>>> allowed, all with different processing requirements. This seems like 
>>> overkill for the use case of a context menu. It doesn't even make 
>>> much semantic sense for a context menu to contain a button. Overall, 
>>> it doesn't seem like the cases of menu list, toolbar and context 
>>> menu really share enough behavior or appropriate content model to 
>>> make them use the same element.
>>>
>>> - <command>
>>>  It's unclear if this element is worth having without the use cases 
>>> for toolbars or menus, and it also has 0 implementations so far and 
>>> seems like it might not be fully baked.
>>>
>>>>
>>>> - Sectioning elements: <section>, <article>, <aside>, <hgroup>, 
>>>> <header>, <footer>, <nav>
>>>>  These seem useful - they give a way to represent the semantics of 
>>>> many Web pages nicely, and could work well with accessibility 
>>>> features for navigating around the page, as well as other clever 
>>>> ways of processing Web content. They are also trivial to implement 
>>>> (I already did <nav>). We're fairly interested in doing the rest of 
>>>> these.
>>>>
>>>> - <dialog> element
>>>>  This essentially gives the same behavior as <dl> but with 
>>>> appropriate semantics for logs of conversations. It seems useful 
>>>> and easy to implement.
>>>>
>>>> - Elements requiring changes to <legend> parsing: <figure>, <details>
>>>>  These elements seem quite useful, but they will be unusable on the 
>>>> public Web until all browsers are updated to change how they parse 
>>>> <legend> and the new versions are widely adopted. Pretty much all 
>>>> current browsers do something idiosyncratic when parsing a <legend> 
>>>> element outside of a <fieldset>, which makes it impossible to make 
>>>> <figure> or <details> degrade gracefully via script or style. We 
>>>> are hesitant to implement elements that authors would feel they are 
>>>> unable to use, or to lead authors astray, so we are hesitant to 
>>>> implement the new elements until either the <legend> parsing issue 
>>>> is widely fixed or HTML5 uses some element other than <legend> for 
>>>> the caption on these elements. We will consider fixing our parsing 
>>>> of <legend> outside <fieldset> soon, though, so that we're not the 
>>>> blocker.
>>>>
>>>> - New media elements: <audio>, <video>
>>>>  We love these and have them implemented. We don't see any 
>>>> implementation issues in the current spec.
>>>>
>>>> - <canvas>
>>>>   We like this and we have it implemented. We don't see any 
>>>> implementation issues in the current spec.
>>>>
>>>> - Newly standard legacy elements: <keygen>, <embed>
>>>>  We had these for a long time before they were in HTML5. It seems 
>>>> like a good idea to cover them in the spec.
>>>>
>>>> - <mark>
>>>>  The basic idea for this element seems good, but the suggested UI 
>>>> for exposing it does not seem to entirely match the use cases, and 
>>>> may not be practical to deploy. Having tick marks in the scrollbar 
>>>> for every <mark>, and UI to cycle between them, seems too 
>>>> heavyweight for some of the suggested uses. We are interested in 
>>>> implementing the basics of <mark> soon, but probably not the 
>>>> requirements.
>>>>
>>>> - <time>
>>>>  It seems useful for use cases like Microformats to have a clean, 
>>>> unambiguous way to represent a specific time. It seems odd that 
>>>> there are ways to get Date objects to represent the date, time and 
>>>> time zone separately, but no way to get a Date representing the 
>>>> combination of date/time/timezone. Wouldn't the latter be a common 
>>>> use case, and doesn't the JavaScript Date object give sufficient 
>>>> APIs to unpack a Date into its components as needed?
>>>>   - New interactive controls: <meter>, <progress>
>>>>  These elements seem useful and a good idea. These controls are 
>>>> useful in native UI and often get hand-rolled by JavaScript 
>>>> libraries. We would like to expose a default native look, but with 
>>>> full author stylability for these. The only odd requirement is the 
>>>> use of inline text content in the elements to represent the state 
>>>> of the control. Specifying inline textContent may be a clever way 
>>>> to pass the initial state, but it seems very clunk as an interface 
>>>> for dynamically updating the state of the progress bar. Using the 
>>>> max and value IDL attributes of <progress> seems like it would be 
>>>> much easier for authors, and it seems like a problem that these 
>>>> only reflect the markup attributes and not the full state of the 
>>>> control (if the state is currently defined by text content). 
>>>> Likewise for the 6 attributes on <meter>. Assembling up to 6 
>>>> numbers into a textContent string, which then does not cause the 
>>>> convenient DOM attributes to update, seems very clinky.
>>>>
>>>> - Ruby elements: <ruby>, <rp>, <rt>
>>>> /  We think these are useful. Google engineers are actively working 
>>>> on the WebKit implementation and some initial patches have landed./
>>>>
>>>> - <datalist>
>>>>  Work on this is in progress. We think it is a good idea to offer a 
>>>> way to do true combo boxes, including ones with a dynamic source of 
>>>> filled-in values.
>>>>
>>>> - <output>
>>>>  This seems relatively simple to implement and worth implementing.
>>>>
>>>> - new <input> element types
>>>>  These seem generally useful, and we already have some implemented 
>>>> to various extents (search, range, email, url tel). The only 
>>>> concern is the sheer number of date and time controls. 6 of the 13 
>>>> new input types are for dates or times. Are there real use cases 
>>>> for all 6? Do all 6 exhaustively cover the types of time and date 
>>>> input you may want to do in forms?
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> webkit-dev mailing list
>>>> webkit-dev at lists.webkit.org <mailto:webkit-dev at lists.webkit.org>
>>>> http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
>>>
>>> ------------------------------------------------------------------------ 
>>>
>>>
>>> _______________________________________________
>>> webkit-dev mailing list
>>> webkit-dev at lists.webkit.org
>>> http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
>>>
>>
>> _______________________________________________
>> webkit-dev mailing list
>> webkit-dev at lists.webkit.org
>> http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
>



More information about the webkit-dev mailing list