Application Foundations/CoreDesignAndDev

From W3C Wiki

The key technologies in this foundation help Web developers meet user expectations about the “look and feel” of Web applications. Users naturally expect user experiences with certain “look and feel” characteristics of a consistent level of quality across the different platforms on which they use applications—including the Web; for example, users of native mobile apps expect Web applications to have some of the same desirable “look and feel” UX characteristics that their native mobile apps have.

So in part, this foundation can be seen as aiming to provide developers with the tools they need to build applications with ”look and feel” UX characteristics of the same level of quality as they experience with native mobile apps and other application platforms.

This foundation includes CSS, graphics formats, animation mechanisms, typography, HTML, the DOM, and JavaScript—and the high-level goals are to have a “core toolbox” of technologies for controlling “look and feel” UX characteristics that is:

  • reliably interoperable across all browsers
  • as easy-to-use for developers as possible

Relevant specs:

Also the various language requirements guides: Japanese, Chinese, Indic, Latin etc and the requirements from digital publishing.

Goals

  • document developer use-case scenarios that fall under this foundation
  • document current developer “pain points” related to developing engaging and compelling Web applications using CSS, graphics formats, animation mechanisms, and typography; for example, lack of ability to easily create compelling users experiences with drag-and-drop mechanisms across browsers; or lack of ability to create compelling user experiences with rich-text editing across browsers
  • document "success stories" we've had so far for addressing developer pain points; e.g., Responsive Images (the picture element), CSS-TAG "Houdini" work just starting to make CSS layout more user extensible
  • define a prioritization framework for these various developer use cases can be addressed
  • evaluate how much of these use cases are currently achievable with existing techs
  • evaluate how much of the developer “pain points” are currently achievable with existing techs
  • for use cases that are not achievable (or in unsatisfactory ways), determine which technologies are needed (Houdini working on this)
  • for pain points that are not addressable (or in unsatisfactory ways), determine which fixes/refinements are needed
  • among those that are needed and in progress, determine how to accelerate their development
  • among those that are needed and not in progress, determine how to get them started

Potential milestones

  • Feb 15: document some existing ““core toolbox” technologies that are the most-severe pain points for developers; the model example of a document of this kind is the Editing Explainer developed by the HTML Editing Task Force
  • Feb 15: document some existing ”success stories” for “core toolbox” technologies that have solved some severe pain points for developers—with an eye toward figuring out how to reproduce those successes (e.g., Responsive Images (the picture element)
  • Feb 19: Review of capabilities of native platforms in this space
  • Feb 28: proposed framework for prioritizing consideration of the identified “priority pain points”
  • Feb 28: Outreach to the developers on the proposed framework
  • April 15: Proposed prioritization of actions for staff / WG with suggestions for additional resources investment
  • April 24: Report for progress on application foundation due for AC meeting
  • May 5: AC meeting starts

Progress

Over the last year to 18 months, work in several Core Design/Development groups has been informed by the notion of extensibility and in particular the composability of multiple extensions. Early work showed that single extensions were relatively easy t make in some areas, but tended to step on each other's toes. Applicattion Foundations has driven some of that, although the major impetus was the Extensible Web Manifesto.

As a result, functionality has been shifted from SVG to CSS with the expectation of using it in Web Components. CSS has done good work on styling the Shadow DOM, which allows integrating the styling of extensions into the overall site style; it has also started the Houdini project together with the TAG, to provide APIs that expose previously hidden functionality that already exists in the browser and which extensions would otherwise have to re-implement. Other changes include a focus on not specifying special-case functionality, but instead favouring generality and composability (particularly in layout models); and ongoing discussions about the styling and functionality of rich text selection, annotation, and editing.

There is starting to be a conversation on maintenance of large websites (in particular the CSS) and learning from frameworks like SASS which are increasingly used. On the downside, there is a tendency to ignore/reimplement large sections of te OWP in JavaScript, which is extension but is rarely composable.

The impact of extensibility on performance continues to be a hot topic. As an example, WebAudio abandoned a previous extensibility design (ScriptProcessor node) because it blocked the main layout thread; instead a new although more complex design was introduced (Audio Workers) which provides non-blocking and low-jitter extensibility, after content developer feedback raised significant concerns about the older design. Performance improvements based on responsive images are also increasingly discussed.