W3C

Web Design and Applications

Web Design and Applications involve the standards for building and Rendering Web pages, including HTML, CSS, SVG, device APIs, and other technologies for Web Applications (“WebApps”). This section also includes information on how to make pages accessible to people with disabilities (WCAG), to internationalize them, and make them work on mobile devices.

HTML & CSS Header link

HTML and CSS are the fundamental technologies for building Web pages: HTML (html and xhtml) for structure, CSS for style and layout, including WebFonts. Find resources for good Web page design as well as helpful tools.

JavaScript Web APIs Header link

Standard APIs for client-side Web Application development include those for Geolocation, XMLHttpRequest, and mobile widgets. W3C standards for document models (the “DOM”) and technologies such as XBL allow content providers to create interactive documents through scripting.

Graphics Header link

W3C is the home of the widely deployed PNG raster format, SVG vector format, and the Canvas API. WebCGM is a more specialized format used, for example, in the fields of automotive engineering, aeronautics.

Audio and Video Header link

Some of the W3C formats that enable authoring audio and video presentations include HTML, SVG, and SMIL (for synchronization). W3C is also working on a timed text format for captioning and other applications.

Accessibility Header link

W3C’s Web Accessibility Initiative (WAI) has published Web Content Accessibility Guidelines (WCAG) to help authors create content that is accessible to people with disabilities. WAI-ARIA gives authors more tools to create accessible Web Applications by providing additional semantics about widgets and behaviors.

Internationalization Header link

W3C has a mission to design technology that works across cultures and languages. W3C standards such as HTML and XML are built on Unicode, for instance. In addition, W3C has published guidance for authors related to language tags bi-directional (bidi) text, and more.

Mobile Web Header link

W3C promotes “One Web” that is available on any device. W3C’s Mobile Web Best Practices help authors understand how to create content that provides a reasonable experience on a wide variety of devices, contexts, and locations.

Privacy Header link

The Web is a powerful tool for communications and transactions of all sorts. It is important to consider privacy and security implications of the Web as part of technology design. Learn more about tracking and Web App security.

Math on the Web Header link

Mathematics and formula are used on the Web for business reports, education materials and scientific research. W3C’s MathML enables mathematics to be served, received, and processed on the World Wide Web, just as HTML has enabled this functionality for other types of content.

News Atom

A translateattribute was recently added to HTML5 . At the three MultilingualWeb workshopswe have run over the past two years, the idea of this kind of ‘translate flag’ has constantly excited strong interest from localizers, content creators, and from folks working with language technology.

How it works

Typically authors or automated script environments will put the attribute in the markup of a page. You may also find that, in industrial translation scenarios, localizers may add attributes during the translation preparation stage, as a way of avoiding the multiplicative effects of dealing with mistranslations in a large number of languages.

There is no effect on the rendered page (although you could, of course, style it if you found a good reason for doing so). The attribute will typically be used by workflow tools when the time comes to translate the text – be it by the careful craft of human translators, or by quick gist-translation APIs and services in the cloud.

The attribute can appear on any element, and it takes just two values: yesor no. If the value is no, translation tools should protect the text of the element from translation. The translation tool in question could be an automated translation engine, like those used in the online services offered by Google and Microsoft. Or it could be a human translator’s ‘workbench’ tool, which would prevent the translator inadvertently changing the text.

Setting this translate flag on an element applies the value to all contained elements and to all attribute values of those elements.

You don’t have to use translate="yes"for this to work. If a page has no translateattribute, a translation system or translator should assume that all the text is to be translated. The yesvalue is likely to see little use, though it could be very useful if you need to override a translate flag on a parent element and indicate some bits of text that should be translated. You may want to translate the natural language text in examples of source code, for example, but leave the code untranslated.

Why it is needed

You come across a need for this quite frequently. There is an example in the HTML5 spec about the Bee Game. Here is a similar, but real example from my days at Xerox, where the documentation being translated referred to a machine with text on the hardware that wasn’t translated.

<p>Click the Resume button on the Status Display or the
<span class="panelmsg" translate="no">CONTINUE</span> button
on the printer panel.</p>

Here are a couple more (real) examples of content that could benefit from the translateattribute. The first is from a book, quoting a title of a work.

<p>The question in the title <cite translate="no">How Far Can You Go?</cite> applies to both the undermining of traditional religious belief by radical theology and the undermining of literary convention by the device of "breaking frame"...</p>

The next example is from a page about French bread – the French for bread is ‘ pain‘.

<p>Welcome to <strong translate="no">french pain</strong> on Facebook. Join now to write reviews and connect with <strong translate="no">french pain</strong>. Help your friends discover great places to visit by recommending <strong translate="no">french pain</strong>.</p>

So adding the translate attribute to your page can help readers better understand your content when they run it through automatic translation systems, and can save a significant amount of cost and hassle for translation vendors with large throughput in many languages.

What about Google Translate and Microsoft Translator?

Both Google and Microsoft online translation services already provided the ability to prevent translation of content by adding markup to your content, although they did it in (multiple) different ways. Hopefully, the new attribute will help significantly by providing a standard approach.

Both Google and Microsoft currently support class="notranslate", but replacing a class attribute value with an attribute that is a formal part of the language makes this feature much more reliable, especially in wider contexts. For example, a translation prep tool would be able to rely on the meaning of the HTML5 translateattribute always being what is expected. Also it becomes easier to port the concept to other scenarios, such as other translation APIs or localization standards such as XLIFF.

As it happens, the online service of Microsoft (who actually proposed a translate flag for HTML5 some time ago) already supported translate="no". This, of course, was a proprietary tag until now, and Google didn’t support it. However, just yesterday morning I received word, by coincidence, that Webkit/Chromium has just added support for the translateattribute, and yesterday afternoon Google added support for translate="no"to its online translation service. See the results of some tests I put together this morning. (Neither yet supports the translate="yes"override.)

In these proprietary systems, however, there are a good number of other non-standard ways to express similar ideas, even just sticking with Google and Microsoft.

Microsoft apparently supports style="notranslate". This is not one of the options Google lists for their online service, but on the other hand they have things that are not available via Microsoft’s service.

For example, if you have an entire page that should not be translated, you can add <meta name="google" value="notranslate">inside the headelement of your page and Google won’t translate any of the content on that page. (However they also support <meta name="google" content="notranslate">.) This shouldn’t be Google specific, and a single way of doing this, ie. translate="no"on the htmltag, is far cleaner.

It’s also not made clear, by the way, when dealing with either translation service, how to make sub-elements translatable inside an element where translatehas been set to no– which may sometimes be needed.

As already mentioned, the new HTML5 translate attribute provides a simple and standard feature of HTML that can replace and simplify all these different approaches, and will help authors develop content that will work with other systems too.

Can’t we just use the lang attribute?

It was inevitable that someone would suggest this during the discussions around how to implement a translate flag, however overloading language tags is not the solution. For example, a language tag can indicate which text is to be spellchecked against a particular dictionary. This has nothing to do with whether that text is to be translated or not. They are different concepts. In a document that has lang="en"in the html header, if you set lang="notranslate"lower down the page, that text will now not be spellchecked, since the language is no longer English. (Nor for the matter will styling work, voice browsers pronounce correctly, etc.)

Going beyond the translate attribute

The W3C’s ITS (International Tag Set) Recommendation proposes the use of a translate flag such as the attribute just added to HTML5, but also goes beyond that in describing a way to assign translate flag values to particular elements or combinations of markup throughout a document or set of documents. For example, you could say, if it makes sense for your content, that by default, all pelements with a particular class name should have the translate flag set to nofor a specific set of documents.

Microsoft offers something along these lines already, although it is much less powerful than the ITS approach. If you use <meta name="microsoft" content="notranslateclasses myclass1 myclass2" />anywhere on the page (or as part of a widget snippet) it ensures that any of the CSS classes listed following “notranslateclasses” should behave the same as the “notranslate” class.

Microsoft and Google’s translation engines also don’t translate content within codeelements. Note, however, that you don’t seem to have any choice about this – there don’t seem to be instructions about how to override this if you do want your codeelement content translated.

By the way, there are plans afoot to set up a new MultilingualWeb-LT Working Group at the W3C in conjunction with a European Commission project to further develop ideas around the ITS spec, and create reference implementations. They will be looking, amongst many other things, at ways of integrating the new translateattribute into localization industry workflows and standards. Keep an eye out for it.

A large number of additional tests related to bidirectional text support in HTML5 have been added to the Internationalization test suite.

These tests look at support for the new auto value of the dir attribute, and there is one more test related to behavior associated with the br element.

The tests are published in the i18n-html5 test suite in the W3C Test Harness as well as being accessible in the usual Internationalization Activity format.

A page summarizing the latest resultsis available.

The program has been published for the upcoming W3C MultilingualWeb workshop in Luxembourg, 15-16 March 2012.

The keynote speaker will be Ivan Herman, Semantic Web Activity Lead at the W3C. He is followed by a strong line up in sessions entitled Developers, Creators, Localizers, Machines, and Users, including speakers from Microsoft, WikiMedia Foundation, Joomla!, Intel, the European Commission, Mozilla, CNGL, the UN FAO, and more. On the second day we will hold Open Space breakout discussions, led by Jaap van der Meer of TAUS.

See the Call for Participationfor details about how to register for the workshop. Participation in the workshop is free.

Important: In order to gain access to the Commission buildings, you must register by 5th March.Don’t miss the deadline!

The MultilingualWeb workshops, funded by the European Commission and coordinated by the W3C, look at best practices and standards related to all aspects of creating, localizing and deploying the multilingual Web. The workshops are successful because they attracted a wide range of participants, from fields such as localization, language technology, browser development, content authoring and tool development, etc., to create a holistic view of the interoperability needs of the multilingual Web.

We look forward to seeing you in Luxembourg!

As Mobile World Congress draws near ( W3C will have a booth there , come and say hi if you’re around), I have just released an update to the quaterly Standards for Web Applications on Mobile .

This February 2012 edition features for the first time detailed information on which mobile browser implements what specification, based on data collected from existing on-line sources and computed into simple graphicsvia a simple tool.

The document also has the latest information about the status of specifications, their expected evolution, the state of their accompanying test suites, etc.

A number of the technologies the document covers will be at the core of the new on-line training course: Mobile Web 2: Applications, scheduled to start on March 12, and for which early bird rates end on March 1st — a perfect opportunity to explore these technologies in a lot more details!


This article was translated into Swedish thanks to Olle Olsson.

We are pleased to announce that a brand new mobile Web course is open for registration: “Mobile Web 2: Applications” will provide you with all the knowledge you need to write mobile Web applications that can ship both online and in application stores, using today’s advanced technologies.

During this course, participants will:

  • Understand the specifics of developing Web applications for the mobile environment.
  • Learn the latest HTML5 and Javascript APIs that are actually usable in real-world environments.
  • Discover the options at your disposal to package applications so that they work offline or can be shipped to application stores.
  • Be informed about what technologies are coming next so that you will be ready to use them when they become broadly available.

Developped by the W3C/MobiWebApp team, and taught by Robin Berjon, W3C Device APIs working group chair and newly elected TAG member, this new course will last 8 weeks, with a start date of 12 March 2012. Read the course description and registerquickly before 1 March to benefit from the early bird rate(165€).

 


A report summarising the MultilingualWeb workshop in Limerick is now available from the MultilingualWeb site. Alongside the summaries are links to slides, video recordings, and the IRC log for each speaker and the discussion sessions.

Entitled “A Local Focus for the Multilingual Web”, the workshop surveyed and shared information about currently available best practices and standards that can help content creators and localizers address the needs of the multilingual Web. Attendees also heard about gaps that need to be addressed, and enjoyed opportunities to network and share information between the various different communities involved in enabling the multilingual Web.

This workshop also included a half-day Open Space discussion session run by Jaap van der Meer of TAUS, where attendees split into breakout groups to discuss topics of their own choosing.

You can also find links to videos, slides, etc as well as links to social media related to the event on the program pageof the workshop.

Preparations have now begun for the next workshop, to be held in Luxembourg, on March 15-16. It will be hosted by the Directorate General for Translation of the European Commission. See the Call for Participationto register.

These tests check whether a user agent follows the CSS 2.1 specification when dealing with character encodings for CSS style sheets. The test results have been updated to show the behaviour of the latest versions of major browsers, and the tests have been added to the W3C Test Framework.

See the page summarizing the latest results. You can also link from that page to the tests themselves.

See the tests in the W3C Test Harness or in the Internationalization Activity format.

Time for your Open Web Platform weeklysummary dose. A bit of HTML5, a bit of Web apps, a pinch of Web Architecture and HTTP and everything tied with a Web Education ribbon.

HTML5

Charles Pritchard (Jumis) is asking if the allow_popupattribute valueis ready for prime time. IE has an implementation of it and Webkit has an ongoing patch. The goal of the attribute is to allow pop up in some circumstances where it is usually not possible, such as sandboxed iframes.

The abbrattribute on thelements will be addedto HTML5 specification.

There is a proposal for the next version of HTMLto have a DOM attribute to have access to the metadata contained in images.

There is a meta perma-thread revolving along longdescattribute but also images map and accessibility. This discussion is not finished yet and let's hope people will reach a common understanding on the issue.

Web Apps

Robin Berjon proposed to add screen orientation lockto the rechartering of Web Apps WG. It is happening sometimes that an app will make sense only when the screen has a specific orientation. On the other hand, your body might have a position which is not the one perceived by the device. For example when you are reading news lying down on the side, and you screen suddenly rotates because of your position.

Should you be able to install Web Apps on your computer. Tim Berners-Lee (W3C) think so and argues for it.

Glen Shires (Google) proposes the creation of a Community Group for the Speech Javascript API.

The discussion on adding Image.toBlob()is still active . It is very similar to Canvas.toBlob(). Some people wondered if in fact it should not be more general and apply to any kind of binary streams.

Education

Chris Mills (Opera Software), who is actively involved in developing a neutral repository for Open Web documentationacross platforms, has outlined how the group will move forward . You can join the Web Education Community Group.

HTTP

The discussion about the rechartering of HTTP WG is still going on for working on the new generation of HTTP. There is a lot of input on what are the good strategies for the future. Some people share their opinions about the SPDY experiment . Pretty sure that the IETF WG F2F in Paris(March 25-30, 2012) will be quite active. I will not be there unfortunately.

Web Architecture

Larry Masinter (Adobe) sent a proposal for working on MIME and the Web. The discussion addresses the issues around registries which come quite often. Basically how do we maintain the balance in between the flexibility of the open Web and a control set of values avoiding fragmentation.

Robin Berjon proposed a new draft about the work on API Minimization. He is looking for feedback.

This column is written by Karl Dubost , working in the Developer Relations team at Opera Software.

At this year’s 21th International World Wide Web Conference – WWW2012, W3C organizes a W3C tutorial track over two days, on Monday 16 and Tuesday 17 April 2012.

Half-day tutorials from leading experts will be available to researchers and developers seeking to pick up new skills on the latest developments on W3C Web standards.

One of these W3C tutorials will be about “ Developing Mobile Web Applications” and will be taught by Dominique Hazaël-Massieux (W3C Mobile Web Activity Lead) and Frances de Waal ( W3DevCampus trainer for the Mobile Web and Application Best Practices online training course). The tutorial informations are summarized below:

  • W3C tutorial on “Developing Mobile Web Applications”
  • by Frances de Wall and Dominique Hazaël-Massieux
  • on Tuesday April 17th – morning
  • at the Lyon Convention Centre, Lyon, France
  • Abstract: Participants to the tutorial will learn how to build applications for mobile devices using Web technologies. We will first focus on what makes it different to use the Web on mobile devices compared to computers: the specific constraints of these devices, as well as their increasing specific advantages. The tutorial will then look at how to exploit all the specificities of the mobile user experience, via JavaScript APIs, touch interactions, camera integration, etc.
  • Please register to this tutorial before 13 February to get an early bird rate!


Talks and Appearances Header link

See also the full list of W3C Talks and Appearances.

Events Header link

  • 2012-02-27 (27 FEB) 2012-03-01 ( 1 MAR)

    Mobile World Congress 2012

    Barcelona, Spain

    MWC imagery W3C will have a booth at Mobile World Congress: come and meet us in Hall 2, booth #2A31! Learn more about W3C @ MWC 2012.

  • 2012-03-15 (15 MAR) 2012-03-16 (16 MAR)

    The Multilingual Web – The Way Ahead

    Luxembourg

    Hosted by the Directorate-General for Translation (DGT) of the European Commission.

    Building on the success of the preceding events in Madrid, Pisa, and Limerick, this workshop will once again bring together speakers and participants with an interest in best practices and standards aimed at helping content creators, localizers, tools developers, and others meet the challenges of the multilingual Web. It provides further opportunities for networking across communities that span the various aspects involved.

  • 2012-03-20 (20 MAR) 2012-03-22 (22 MAR)

    Device APIs Working Group meeting

    Shenzhen, China

    Huawei

See full list of W3C Events.