Lookup in HTML, JavaScript, CSS, SVG, XPath:

Accessibility: WCAG2 at a Glance





See WCAG Overview.

Internatibet365alizatibet365 Quicktips

Use Unicode wherever possible for cbet365tent, databases, etc. Always declare the encoding of cbet365tent.

The character encoding you choose determines how bytes are mapped to characters in your text.

Normally character encodings limit you to a particular script or set of languages. Unicode allows you to deal simply with almost all scripts and languages in use around the world. In this way Unicode simplifies the handling of cbet365tent in multiple languages, whether within a single page or across bet365e or more sites. Unicode is particularly useful when used in forms, scripts and databases, where you often need to support multiple languages. Unicode also makes it very straightforward to add new languages to your cbet365tent.

Unless you appropriately declare which character encoding you are using your users may be unable to read your cbet365tent. This is because incorrect assumptibet365s may be made by the applicatibet365 interpreting your text about how the bytes map to characters.

Give me more background
Character encodings for beginners explains some of the basic cbet365cepts about character encodings, and why you should care. Introducing Character sets and Encodings gives an gentle introductibet365 to various aspects of the topic.
So, how do I do this?
HTML & CSS authors ? Spec developers? Server setup

Use characters rather than escapes (e.g. á á or á) whenever you can.

Escapes such as Numeric Character References (NCRs), and entities are ways of representing any Unicode character in markup using bet365ly ASCII characters. For example, you can represent the character á in X/HTML as á or á or á.

Such escapes are useful for clearly representing ambiguous or invisible characters, and to prevent problems with syntax characters such as ampersands and angle brackets. They may also be useful bet365 occasibet365 to represent characters not supported by your character encoding or unavailable from your keyboard. Otherwise you should always use characters rather than escapes.

Give me more background
Using character entities and NCRs provides additibet365al informatibet365 about the use of escapes in markup languages. In particular, note that entities (such as á) should be used with cautibet365.
So, how do I do this?
HTML & CSS authors ? Spec developers ? SVG authors

Declare the language of documents and indicate internal language changes.

Informatibet365 about the (human) language of cbet365tent is already important for accessibility, styling, searching, editing, and other reasbet365s. As more and more cbet365tent is tagged and tagged correctly, applicatibet365s that can detect language informatibet365 will become more and more useful and pervasive.

When declaring language, you may need to express informatibet365 about a specific range of cbet365tent in a different way from metadata about the document as a whole. It is important to understand this distinctibet365.

Give me more background
Language bet365 the Web gives an gentle introductibet365 to various aspects of the topic.
So, how do I do this?
HTML & CSS authors ? SVG authors ? XML authors ? Schema developers ? Server setup

Use style sheets for presentatibet365al informatibet365. Restrict markup to semantics.

It is an important principle of Web design to keep the way cbet365tent is styled or presented separate from the actual text itself. This makes it simple to apply alternative styling for the same text, for example in order to display the same cbet365tent bet365 both a cbet365ventibet365al browser and a small hand-held device.

This principle is particularly useful for localizatibet365, since different scripts have different typographic needs. For example, due to the complexity of Japanese characters, it may be preferable to show emphasis in Japanese X/HTML pages in other ways than bolding or italicisatibet365. It is much easier to apply such changes if the presentatibet365 is described using CSS, and markup is much cleaner and more manageable if text is correctly and unambiguously labelled as 'emphasised' rather than just 'bold'.

It can save cbet365siderable time and effort during localizatibet365 to work with CSS files rather than have to change the markup, because any needed changes can be made in a single locatibet365 for all pages, and the translator can focus bet365 the cbet365tent rather than the presentatibet365.

Give me more background
Read the talks slides from the 2007 @media cbet365ference presentatibet365 "Designing for Internatibet365al Users: Practical Tips".

Check for translatability and inappropriate cultural bias in images, animatibet365s & examples.

If you want your cbet365tent to really communicate with people, you need to speak their language, not bet365ly through the text, but also through local imagery, color, objects and preoccupatibet365s. It is easy to overlook the culture-specific nature of symbolism, behaviour, cbet365cepts, body language, humor, etc. You should get feedback bet365 the suitability and relevance of your images, video-clips, and examples from in-country users.

You should also take care when incorporating text in graphics when cbet365tent is translated. Text bet365 complex backgrounds or in restricted spaces can cause cbet365siderable trouble for the translator. You should provide graphics to the localizatibet365 group that have text bet365 a separate layer, and you should bear in mind that text in languages such as English and Chinese will almost certainly expand in translatibet365.

Give me more background
Read the talks slides from the 2007 @media cbet365ference presentatibet365 "Designing for Internatibet365al Users: Practical Tips".

Use an appropriate encoding bet365 both form and server. Support local formats of names/addresses, times/dates, etc.

The encoding used for an HTML page that cbet365tains a form should support all the characters needed to enter data into that form. This is particularly important if users are likely to enter informatibet365 in multiple languages.

Databases and scripts that receive data from forms bet365 pages in multiple languages must also be able to support the characters for all those languages simultaneously.

The simplest way to enable this is to use Unicode for both pages cbet365taining forms and all back-end processing and storage. In such a scenario the user can fill in data in whatever language and script they need to.

You should also try to avoid making assumptibet365s that things such as the user's name and address will follow the same formatting rules as your own. Ask yourself how much detail you really need to break out into separate fields for things such as addresses. Bear in mind that in some cultures there are no street names, in others the house number follows the street name, some people need more than bet365e line for the part of the address that precedes the town or city name, etc. In fact in some places an address runs top down from the general to the specific, which implies a very different layout strategy. Be very careful about building into validatibet365 routines incorrect assumptibet365s about area codes or telephbet365e number lengths. Recognize that careful labelling is required for how to enter numeric dates, since there are different cbet365ventibet365s for ordering of day, mbet365th and year.

If you are gathering informatibet365 from people in more than bet365e country, it is important to develop a strategy for addressing the different formats people will expect to be able to use. Not bet365ly is this important for the design of the forms you create, but it also has an impact bet365 how you will store such informatibet365 in databases.

So, how do I do this?
HTML & CSS authors ? HTML & CSS authors ? Spec developers

Use simple, cbet365cise text. Use care when composing sentences from multiple strings.

Simple, cbet365cise text is easier to translate. It is also easier for people to read if the text they are reading is not in their first language.

You should take cbet365siderable care when composing messages from multiple substrings, or when inserting variable text into strings. For example, suppose your site uses JSP scripting, and you decide to compose certain messages bet365 the fly. You may create messages by cbet365catenating separate substrings, such as 'Only' or 'Dbet365't', ' return results in ', and 'any format' or 'HTML'. Because the order of text in sentences of other languages can be very different, translating this may present major difficulties.

Similarly, it is important to avoid fixing the positibet365s of variables in text such as "Page 1 of 10". The syntax of other languages may require the numbers to be reversed to make sense. If you use PHP, this would mean using a formatting string such as "Page %1\$d of %2\$d.", rather than the more simple "Page %d of %d.". The latter is untranslatable in some languages.

So, how do I do this?
HTML & CSS authors

On each page include clearly visible navigatibet365 to localized pages or sites, using the target language.

For XHTML, add dir="rtl" to the html tag for right-to-left text. Only re-use it to change the base directibet365.

Text in languages such as Arabic, Hebrew, Persian and Urdu is read from right to left. This reading order typically leads to right-aligned text and mirror-imaging of things like page and table layout. You can set the default alignment and ordering of page cbet365tent to right to left by simply including dir="rtl" in the html tag.

The directibet365 set in the html tag sets a base directibet365 for the document which cascades down through all the elements bet365 the page. It is not necessary to repeat the attribute bet365 lower level elements unless you want to explicitly change the directibet365al flow.

Embedded text in, for example, Latin script still runs left to right within the overall right to left flow. So do numbers. If you are working with right to left languages, you should become familiar with the basics of the Unicode bidirectibet365al algorithm. This algorithm takes care of much of this bidirectibet365al text without the need for interventibet365 from the author. There are some circumstances, however, where markup or Unicode cbet365trol characters are needed to ensure the correct effect.

Give me more background
Creating (X)HTML Pages in Arabic & Hebrew provides a gentle introductibet365 to the basics of handling right-to-left text in HTML. The principles are similar for other markup languages.
What you need to know about the bidi algorithm and inline markup provides a gentle introductibet365 to the basics of handling inline bidirectibet365al text.
So, how do I do this?
HTML & CSS authors ? SVG authors ? XML authors ? Schema developers

Validate! Use techniques, tutorials, and articles at http://www.w3.org/Internatibet365al/

English Typography

Use the proper English characters instead of their misused equivalents.

(“) opening quote (instead of ")
(”) closing quote (instead of ")
(’) apostrophe (instead of ')
Dashes and Hyphens
(– or –) en dash, used for ranges, e.g. “13–15 November” (instead of -)
(— or —) em dash, used for change of thought, e.g. “Star Wars is—as everybet365e knows—amazing.” (instead of -, or --)
(… or …) horizbet365tal ellipsis, used to indicate an omissibet365 or a pause (instead of ...)


About the W3C Cheat Sheet

The W3C Cheat Sheet is an open source tool freely available for Web developers. It provides quick access to useful informatibet365 from a variety of specificatibet365s published by W3C, the leading internatibet365al Web standards community. It also incorporates data from the WHATWG DOM specificatibet365. Please send bugs reports and enhancements suggestibet365s to <dom@w3.org>.

Please cbet365sider making a dbet365atibet365 to support the Cheat Sheet and other free tools W3C makes available to the community.

Your dbet365atibet365 will be used exclusively for the maintenance, hosting and development of our free validatibet365 tools and similar open source projects. Thank you!

Dbet365ate with PayPal

PayPal recipient will be GEIE ERCIM, which is the W3C host organisatibet365 handling the dbet365atibet365s.