Lisez-moi S.V.P. 

W3C

XHTML™ Basic 1.1

Recommandation du W3C du 29 juillet 2008

Cette version :
http://www.w3.org/TR/2008/REC-xhtml-basic-20080729
Dernière version :
http://www.w3.org/TR/xhtml-basic
Version précédente :
http://www.w3.org/TR/2008/PR-xhtml-basic-20080611
Marqué en différence de la version précédente :
xhtml-basic-diff.html
Marqué en différence de la recommandation précédente :
xhtml-basic-rec-diff.html
Rédacteurs de la version 1.1 :
Shane McCarron, Applied Testing and Technology, Inc.
Masayasu Ishikawa, (jusqu'en mars 2007, alors au W3C)
Rédacteurs :
Mark Baker, Sun Microsystems
Masayasu Ishikawa, (jusqu'en mars 2007, alors au W3C)
Shinichi Matsui, Panasonic
Peter Stark, Ericsson
Ted Wugofski, Openwave Systems
Toshihiko Yamakami, ACCESS Co., Ltd.

Veuillez consulter la page des errata de ce document, laquelle peut contenir des corrections normatives.

Cf. également d'éventuelles traductions.

Ce document est également disponible dans les formats non normatifs suivants : version PostScript, version PDF, archive ZIP et archive TAR Gzip.


Résumé

Le type de document XHTML Basic contient l'ensemble minimal de modules nécessaires pour constituer un type de document de langage hôte XHTML et comprend en outre une gestion des images, des formulaires, des tables élémentaires et de l'élément object. Il est conçu pour les clients web qui ne soutiennent pas entièrement l'ensemble des caractéristiques XHTML ; par exemple, les clients web tels que les téléphones mobiles, les ordinateurs de poche (PDA), les téléavertisseurs (pagers) et les boîtiers décodeurs (set top boxes). Le type de document est suffisamment riche pour la création de contenu.

XHTML Basic est conçu comme une base commune extensible. Le but de XHTML Basic est de servir de langage commun soutenu par divers types d'agents utilisateurs.

Cette révision 1.1 remplace la version 1.0 définie à http://www.w3.org/TR/2000/REC-xhtml-basic-20001219. Dans cette révision, plusieurs caractéristiques nouvelles ont été incorporées au langage pour mieux servir la communauté des utilisateurs de petits appareils, qui est la première consommatrice du langage :

  1. Les formulaires XHTML, définis dans [XHTMLMOD] ;
  2. Les événéments intrinsèques, définis dans [XHTMLMOD] ;
  3. La valeur d'attribut de l'élément li, définie dans [XHTMLMOD] ;
  4. L'attribut target, défini dans [XHTMLMOD] ;
  5. L'élément style, défini dans [XHTMLMOD] ;
  6. L'attribut style, défini dans [XHTMLMOD] ;
  7. Le module Presentation XHTML, défini dans[XHTMLMOD] ;
  8. L'attribut inputmode, défini à la section 5 de ce document.

La définition de type de document est mise en œuvre à l'aide de modules XHTML tels que définis dans XHTML Modularization [XHTMLMOD].

Statut de ce document

Cette section décrit le statut de ce document au moment de sa publication. D'autres documents peuvent venir le remplacer. On trouvera une liste des publications actuelles du W3C et la dernière révision de ce rapport techniques dans l'index des rapports techniques du W3C à http://www.w3.org/TR/.

Ce document est une recommandation du W3C qui remplace la version du 19 décembre 2000 de la recommandation XHTML Basic. Il reflète l'accord plurilatéral de l'industrie sur un ensemble des caractéristiques du langage de balisage qui permet aux auteurs de créer du contenu Web riche livrable à une large gamme d'appareils.

Ce document a été produit par le groupe de travail XHTML2 du W3C sous l'égide de l'activité HTML du W3C. Veuillez consulter le rapport de mise en œuvre du groupe de travail. Une version marquée en différence de la recommandation proposée est disponible. Une version marquée en différence de la recommandation du 19 décembre 2000 est également disponible.

Veuillez envoyer vos remarques à propos de ce document à www-html-editor@w3.org (archives). Les courriers de discussion n'ont pas leur place sur cette liste. Les débats publics se tiennent à www-html@w3.org (archives).

Ce document qui a été revu par des membres du W3C, par des développeurs de logiciels et par d'autres groupes du W3C et des tiers intéressés, a été approuvé par le Directeur comme recommandation du W3C. C'est un document stable qui peut être utilisé comme document de référence ou cité par un autre document. Le rôle du W3C en produisant la recommandation est d'attirer l'attention sur la spécification et d'en promouvoir le large déploiement. Cela participe à améliorer la fonctionnalité et l'interopérabilité du Web.

Ce document a été produit par un groupe œuvrant sous couvert de la politique des brevets du 5 février 2004 du W3C. Le W3C tient une liste publique des divulgations de brevet faites en rapport avec les produits livrables du groupe ; cette page contient également des instructions pour la divulgation d'un brevet. Quiconque a connaissance réelle d'un brevet qu'il estime recéler des revendications essentielles doit en divulguer l'information conformément à la section 6 de la politique des brevets du W3C.

Table des matières

1. Introduction

1.1. XHTML pour petits appareils connectés

HTML 4 est un langage de création de contenu web puissant dont la conception ne tient pas compte des difficultés inhérentes aux petits appareils, ainsi le coût de mise en œuvre (en énergie, mémoire, etc.) de l'ensemble des caractéristiques. Les appareils grand public aux ressources limitées ne peuvent en général pas se permettre de mettre en œuvre la totalité des caractéristiques de HTML 4. S'il faut diposer d'un ordinateur complet pour accéder au Web, une grande partie de la population est privée d'un accès grand public aux informations et services en ligne.

Tout comme il existe plusieurs façons de réduire (to subset) HTML, les organisations et entreprises ont défini plusieurs sous-ensembles presque identiques. Sans un jeu de caractéristiques de base, le développement d'applications pour un large éventail de clients Web est difficile.

La raison d'être de XHTML Basic est de fournir un type de document XHTML qui soit partageable entre les communautés (par exemple, les ordinateurs de bureau, les téléviseurs et les téléphones portables) et suffisamment riche pour une création de contenu simple. De nouveaux types de document pour l'ensemble d'une communauté peuvent être définis en étendant XHTML Basic, de telle façon que les documents XHTML Basic se trouvent dans l'ensemble des documents valides du nouveau type de document. On peut donc présenter un document XHTML Basic sur un nombre maximum de clients Web.

La définition du type de document XHTML Basic est fondée sur les modules XHTML définis dans XHTML Modularization [XHTMLMOD].

Pour des renseignements sur les pratiques exemplaires du contenu mobile, cf. [MOBILEBP].

1.2. Arrière-plan et exigences

Les appareils connectés (information appliances) visent des utilisations particulières. Ils soutiennent les caractéristiques nécessaires des fonctions pour lesquelles ils sont conçus. Voici des exemples d'appareils connectés :

Il existe des sous-ensembles et des variantes de HTML pour ces clients, dont Compact HTML [CHTML], le langage WML (Wireless Markup Language) [WML] et les directives HTML 4.0 pour l'accès mobile [GUIDELINES]. Les caractéristiques communes offertes par ces types de document comprennent :

Cet ensemble de caractéristiques HTML est à l'origine de la conception de XHTML Basic. Puisque beaucoup de développeurs de contenus sont familiarisés avec ces caractéristiques HTML, celles-ci constituent un langage d'accueil qui peut se combiner avec des modules de balisage d'autres langages conformément aux méthodes décrites dans la spécification XHTML Modularization [XHTMLMOD]. Par exemple, on peut étendre XHTML Basic avec un module personnalisé pour soutenir une sémantique de balisage enrichie dans des environnements spécifiques.

XHTML Basic ne cherche pas à limiter la fonctionnalité des langages futurs. Mais puisque les caractérisques de HTML 4 (cadres, tables évoluées, etc.) ont été développées pour un client de type ordinateur de bureau, elles se sont révélées inappropriées pour beaucoup d'appareils portatifs. On étendra XHTML Basic et on construira dessus. L'extension de XHTML à partir d'un ensemble de caractéristiques communes et élémentaires, au lieu de sous-ensembles presque identiques ou de l'ensemble trop grand de fonctions dans HTML 4, aura un impact positif pour l'interopérabilité du Web ainsi que pour l'extensibilité (scalability).

Comparé aux riches fonctionnalités de HTML 4, on pourra penser de XHTML Basic que c'est faire un pas en arrière mais ce sera comme avancer de deux pas pour les clients qui n'ont pas besoin de ce qui est dans HTML 4 et pour les développeurs de contenus qui disposent d'un seul sous-ensemble de XHTML au lieu de plusieurs.

1.3. Justification de conception

Cette section explique pourquoi certaines caractéristiques HTML ne font pas partie de XHTML Basic.

1.3.1. Présentation

Beaucoup de clients Web simples ne peuvent pas afficher d'autres fontes que celles à chasse fixe (monospace). Le texte bidirectionnel, les fontes grasses (bold faced fonts) et d'autres éléments d'extension du texte ne sont pas retenus.

Il est recommandé d'utiliser des feuilles de style pour créer une présentation appropriée à l'appareil.

1.3.2. Tables

Les tables de base XHTML ([XHTMLMOD], section 5.6.1) sont gérées, toutefois l'affichage des tables sur des petits appareils peut être difficile. Il est recommandé aux développeurs de contenus de suivre les directives WCAG 1.0 (Web Content Accessibility Guidelines) pour créer des tables accessibles ([WCAG10], Directive 5). Notez que le module Basic Tables interdit l'imbrication des tables.

1.3.3. Cadres

Les cadres (frames) ne sont pas gérés. Les cadres, qui dépendent d'une interface écran, ne pourront peut-être pas s'appliquer à certains petits appareils comme les téléphones, les téléavertisseurs et les montres.

2. Conformité

Cette section est normative.

2.1. Conformité du document

Un document XHTML Basic conforme est un document qui requiert seulement les facilités décrites comme étant obligatoires dans cette spécification. Un tel document doit satisfaire à tous les critères suivants :

  1. Le document doit être conforme aux contraintes exprimées à l'Annexe B ;
  2. L'élément racine du document doit être <html> ;
  3. Le nom de l'espace de noms par défaut sur l'élément racine doit être l'espace de noms XHTML, à savoir http://www.w3.org/1999/xhtml ;
  4. Le document doit contenir une déclaration DOCTYPE qui précède l'élément racine. Si présent, l'identificateur public inclus dans la déclaration DOCTYPE doit référencer la définition DTD trouvée à l'Annexe B avec son identificateur public formel (formal public identifier). L'identificateur de système (system identifier) peut être modifié de manière appropriée.
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN"
        "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">
    
  5. Le sous-ensemble DTD (DTD subset) ne doit pas servir à outrepasser les entités paramètres dans la définition DTD.

Les documents XHTML Basic 1.1 devraient être étiquetés du type média Internet "application/xhtml+xml" comme défini dans le document [RFC3236]. Pour d'autres renseignements sur l'utilisation des types de média avec XHTML, cf. la note informative [XHTMLMIME].

2.2. Conformité de l'agent utilisateur

L'agent utilisateur doit être conforme selon la section Conformité de l'agent utilisateur de la spécification XHTML 1.0 ([XHTML1], section 3.2).

3. Le type de document XHTML Basic

Cette section est normative.

Le type de document XHTML Basic est défini par un jeu de modules XHTML. Tous les modules XHTML sont définis dans la spécification XHTML Modularization [XHTMLMOD].

XHTML Basic se compose des modules XHTML suivants :

Module Structure *
body, head, html, title
Module Text *
abbr, abbr, address, blockquote, br, cite, code, dfn, div, em, h1, h2, h3, h4, h5, h6, kbd, p, pre, q, samp, span, strong, var
Module Hypertext *
a
Module List *
dl, dt, dd, ol, ul, li
Module Forms
button, fieldset, form, input, label, legend, select, optgroup, option, textarea
Module Basic Tables
caption, table, td, th, tr
Module Image
img
Module Object
object, param
Module Presentation
b, big, hr, i, small, sub, sup, tt
Module Metainformation
meta
Module Link
link
Module Base
base
Module Intrinsic Events
Attributs d'événement
Module Scripting
Éléments script et noscript
Module Style Sheet
Élément style
Module Style Attributecontre-indiqué (deprecated)
Attribut style
Module Target
Attribut target.

Note :

  1. L'attribut target est prévu comme accroche (hook) générale de liaison à un environnement externe (tel que des cadres, des fenêtres multiples, des fenêtres à onglets (browser-tabbed windows)) ; si aucun environnement externe de ce type n'est lié à l'agent utilisateur, celui-ci peut ignorer l'attribut target. Si un environnement externe est lié, les exigences de conformité pour l'attribut target sont définies dans chaque environnement ;
  2. Le créateur du contenu doit savoir que le comportement de l'agent utilisateur vis-à-vis de l'attribut target dépend de plusieurs facteurs tels que l'existence d'une liaison à un environnement (environment binding), des restrictions des ressources disponibles, l'existence d'autres applications et de préférences d'utilisateur (telles que le blocage des fenêtres surgissantes), et les décisions de conception dépendant de la mise en œuvre. Lorsqu'il n'y a pas de conformité environnementale externe, il est recommandé aux auteurs de ne pas faire usage de l'attribut target ;
  3. Il faudrait noter que toute utilisation de l'attribut target qui dépend de la mise en œuvre risque de gêner l'interopérabilité.

(*) = Ce module est un module obligatoire du langage hôte XHTML.

XHTML Basic utilise également le module inputmode XHTML, défini dans cette spécification. Ce module ajoute l'attribut inputmode aux éléments input et textarea du module Forms XHTML.

Finalement, XHTML Basic ajoute l'attribut value à l'élément li du module List XHTML.

Une définition DTD XML 1.0 est disponible à l'Annexe B.

4. Utilisation de XHTML Basic

Bien que l'on puisse utiliser XHTML Basic tel quel (comme un langage XHTML simple avec du texte, des liens et des images), le but de sa conception simple est qu'il serve de langage hôte (host language). Un langage hôte peut contenir un mélange de vocabulaires tous emballés dans un seul type de document. Il est naturel que XHTML soit le langage hôte puisque la majorité des développeurs Web y sont habitués.

Lorsqu'on ajoute du balisage provenant d'autres langages à XHTML Basic, le document qui en résulte est une extension de XHTML Basic. Les créateurs de contenus peuvent développer pour XHTML Basic ou tirer profit d'extensions. Le but de XHTML Basic est de servir de langage commun soutenu par divers types d'agent utilisateur.

5. Module inputmode XHTML

Cette section est normative.

Cette section qui était à l'origine une partie de XForms 1.0 a été écrite par Martin Düerst.

Le module inputmode définit l'attribut inputmode.

inputmode = CDATA
Cet attribut spécifie l'information de style de l'élément courant.

Le tableau suivant montre les attributs supplémentaires pour des éléments définis ailleurs lorsque le module inputmode est sélectionné.

Éléments Attributs Notes
input& inputmode (CDATA) Lorsque le module Basic Forms, ou Forms, est sélectionné.
textarea& inputmode (CDATA) Lorsque le module Basic Forms, ou Forms, est sélectionné.

L'attribut inputmode fournit une indication à l'agent utilisateur afin qu'il sélectionne un mode d'entrée (input mode) approprié pour l'entrée de texte attendue dans la commande de formulaire associée. Le mode d'entrée peut être une configuration de clavier, un éditeur de méthode d'entrée — appelé aussi processeur frontal (front end processor) — ou tout autre paramétrage affectant l'entrée sur l'appareil utilisé (ou les appareils).

Avec inputmode, l'auteur peut faire des suggestions (hints) à l'agent, qui facilitent la saisie dans un formulaire par l'utilisateur. Les auteurs devraient fournir des attributs inputmode partout où c'est possible, en s'assurant que les valeurs utilisées couvrent une large gamme d'appareils.

5.1 Syntaxe de la valeur de l'attribut inputmode

La valeur de l'attribut inputmode est une liste d'atomes séparés par des caractères blancs (white space). Les atomes sont soit des séquences de lettres alphabétiques, soit des adresses URI absolues. Ces derniers peuvent se distinguer des premiers en remarquant que les adresses URI contiennent un caractère deux-points « : ». Les atomes ne dépendent pas de la casse. Tous les atomes composés seulement de lettres sont définis dans cette spécification à la section 5.3 Liste des atomes (ou un successeur de cette spécification).

Cette spécification ne définit pas d'adresses URI à utiliser comme atomes, mais permet à d'autres de définir de telles adresses URI pour l'extensibilité. Cela peut s'avérer nécessaire pour les appareils qui ne seraient pas couverts par les atomes fournis ici. L'adresse URI devrait mener à une description lisible par un humain du mode d'entrée associé à l'utilisation de l'adresse URI en tant qu'atome. Cette description devrait présenter le mode d'entrée indiqué par cet atome, et le cas échéant la façon dont l'atome modifie les autres atomes ou est modifié par eux.

5.2 Comportement de l'agent utilisateur

En entrant dans une commande de formulaire vide avec un attribut inputmode, l'agent utilisateur devrait sélectionner le mode d'entrée indiqué par la valeur de l'attribut inputmode. Les agents utilisateurs ne devraient pas utiliser l'attribut inputmode pour fixer le mode d'entrée en entrant dans une commande de formulaire où du texte est déjà présent. Pour établir le mode d'entrée appropriée à l'entrée dans une commande de formulaire contenant déjà du texte, les agents utilisateurs devraient tenir compte des conventions particulières de la plateforme.

Les agents utilisateurs devraient mettre à disposition tous les modes d'entrée gérés par le système (d'exploitation) ou l'appareil (ou les appareils) sur lesquels ils tournent ou auxquels ils ont accès, et installés par l'utilisateur en utilisation normale. Il s'agit généralement d'un petit sous-ensemble des modes d'entrée que l'ont peut décrire avec les atomes définis ici.

Note : On trouvera d'autres directives pour la mise en œuvre des agents utilisateurs dans [UAAG 1.0].

L'algorithme simple qui suit sert à définir la façon dont les agents utilisateurs comparent les valeurs d'un attribut inputmode aux modes d'entrée qu'ils peuvent offrir. Cet algorithme ne doit pas nécessairement être mis en œuvre directement ; les agents utilisateurs doivent juste agir comme s'ils l'utilisaient. L'algorithme n'est pas conçu pour produire des résultats « évidents » ou « souhaitables » pour chaque combinaison possible d'atomes mais pour produire un comportement correct pour les combinaisons d'atomes fréquentes et un comportement prévisible dans tous les cas.

Premièrement, chaque mode d'entrée disponible est représenté par une ou plusieurs listes d'atomes. Un mode d'entrée peut correspondre à plusieurs listes d'atomes ; comme exemple, sur un système configuré pour un utilisateur grec, les listes "greek upperCase" et "user upperCase" correspondraient toutes deux au même mode d'entrée. Il n'y a pas deux listes identiques.

Deuxièmement, l'attribut inputmode est lu (scanned) du début à la fin. Pour chaque atome t dans l'attribut inputmode, si dans le reste des listes d'atomes représentant les modes d'entrée disponibles il y a une liste d'atomes qui contient t, alors toutes les listes d'atomes représentant des modes d'entrée qui ne contiennent pas t sont éliminées. S'il n'y a aucune liste d'atomes qui contient t, alors t est ignoré.

Troisièmement, s'il reste une ou plusieurs listes d'atomes, que toutes correspondent au même mode d'entrée, alors ce mode d'entrée est choisi. S'il ne reste aucune liste (c'est-à-dire qu'il n'y en avait aucune au départ) ou si les listes restantes correspondent à plusieurs modes d'entrée, alors aucun mode d'entrée n'est choisi.

Exemple
Supposons que la liste des listes d'atomes représentant les modes d'entrée disponibles soit {"cyrillic upperCase", "cyrillic lowerCase", "cyrillic", "latin", "user upperCase", "user lowerCase"}, alors les valeurs inputmode suivantes sélectionneront ces modes d'entrée-ci : "cyrillic title" sélectionne "cyrillic", "cyrillic lowerCase" sélectionne "cyrillic lowerCase", "lowerCase cyrillic" sélectionne "cyrillic lowerCase", "latin upperCase" sélectionne "latin" ; mais "upperCase latin" sélectionnera "cyrillic upperCase" et "user upperCase" s'ils correspondent au même mode d'entrée, et ne sélectionnera aucun mode d'entrée si "cyrillic upperCase" et "user upperCase" ne correspondent pas au même mode d'entrée.

5.3 Liste des atomes

Les atomes définis dans cette spécification se rangent en deux catégories : les atomes d'écriture (script tokens) et les modificateurs (modifiers). Les atomes d'écriture devraient toujours apparaître avant les modificateurs dans les attributs inputmode.

5.3.1 Atomes d'écriture

Les atomes d'écriture fournissent une indication générale du jeu de caractères couvert par un mode d'entrée. La plupart du temps, les atomes d'écriture correspondent directement aux écritures Unicode [Unicode Scripts]. Quelques atomes correspondent aux noms de bloc dans la classe Java java.lang.Character.UnicodeBlock ([Java Unicode Blocks]) ou aux noms de bloc Unicode. Quoiqu'il en soit, dans un cas comme dans l'autre, cela ne signifie pas que les modes d'entrée doivent accepter une entrée de tous les caractères dans l'écriture ou le bloc, ni qu'un mode d'entrée se limite seulement aux caractères de cette écriture spécifique. Comme exemple, un clavier "latin" ne couvre pas tous les caractères dans l'écriture latine, et inclut une ponctuation qui n'est pas affectée à l'écriture latine. Ces noms d'écriture proviennent de la version 3.2 du standard Unicode.

Atome de mode d'entrée Commentaires
arabic Nom d'écriture Unicode
armenian Nom d'écriture Unicode
bengali Nom d'écriture Unicode
bopomofo Nom d'écriture Unicode
braille Utilisé pour entrer des motifs en braille (pas pour indiquer un appareil d'entrée en braille)
buhid Nom d'écriture Unicode
canadianAboriginal Nom d'écriture Unicode
cherokee Nom d'écriture Unicode
cyrillic Nom d'écriture Unicode
deseret Nom d'écriture Unicode
devanagari Nom d'écriture Unicode
ethiopic Nom d'écriture Unicode
georgian Nom d'écriture Unicode
greek Nom d'écriture Unicode
gothic Nom d'écriture Unicode
gujarati Nom d'écriture Unicode
gurmukhi Nom d'écriture Unicode
han Nom d'écriture Unicode
hangul Nom d'écriture Unicode
hanja Sous-ensemble des caractères han utilisé pour écrire le coréen
hanunoo Nom d'écriture Unicode
hebrew Nom d'écriture Unicode
hiragana Nom d'écriture Unicode (peut inclure d'autres écritures japonaises produites par conversion de l'hiragana)
ipa Alphabet phonétique international (International Phonetic Alphabet)
kanji Sous-ensemble des caractères han utilisé pour écrire le japonais
kannada Nom d'écriture Unicode
katakana Nom d'écriture Unicode — de pleine chasse (full width), pas de demi-chasse (half-width)
khmer Nom d'écriture Unicode
lao Nom d'écriture Unicode
latin Nom d'écriture Unicode
malayalam Nom d'écriture Unicode
math Symboles mathématiques et caractères apparentés
mongolian Nom d'écriture Unicode
myanmar Nom d'écriture Unicode
ogham Nom d'écriture Unicode
oldItalic Nom d'écriture Unicode
oriya Nom d'écriture Unicode
runic Nom d'écriture Unicode
simplifiedHanzi Sous-ensemble des caractères han utilisé pour écrire le chinois simplifié
sinhala Nom d'écriture Unicode
syriac Nom d'écriture Unicode
tagalog Nom d'écriture Unicode
tagbanwa Nom d'écriture Unicode
tamil Nom d'écriture Unicode
telugu Nom d'écriture Unicode
thaana Nom d'écriture Unicode
thai Nom d'écriture Unicode
tibetan Nom d'écriture Unicode
traditionalHanzi Sous-ensemble des caractères han utilisé pour écrire le chinois traditionnel
user Valeur spéciale représentant l'entrée « native » de l'utilisateur (par exemple, pour saisir son nom ou du texte dans sa langue maternelle).
yi Nom d'écriture Unicode

5.3.2 Atomes de modificateur

Les atomes de modificateur peuvent s'ajouter aux écritures auxquelles ils s'appliquent afin d'indiquer plus précisément le type des caractères attendus dans la commande de formulaire. Les claviers traditionnels des ordinateurs personnels n'ont pas besoin de la plupart des atomes de modificateur (leurs utilisateurs seraient en effet plutôt désorientés si le logiciel décidait de son propre chef de changer la casse ; une exception serait le verrouillage des majuscules pour upperCase). En revanche, les atomes de modificateur peuvent se révéler très utiles pour établir les modes d'entrée des petits appareils.

Atome de mode d'entrée Commentaires
lowerCase En minuscules (pour les écritures bicamérales)
upperCase En majuscules (pour les écritures bicamérales)
titleCase Casse de titre (pour les écritures bicamérales) : les mots commencent par une lettre en majuscule
startUpper L'entrée commence par une lettre en majuscule et se poursuit avec des lettres en minuscules
digits Chiffres d'une écriture particulière (par exemple, inputmode='thai digits')
symbols Symboles, ponctuation (correspondant à une écriture particulière)
predictOn Prédiction du texte activée (par exemple pour du texte courant (running text))
predictOff Prédiction du texte désactivée (par exemple, pour des mots de passe)
halfWidth Formes de compatibilité demi-chasse (par exemple, katakana ; contre-indiqué)

5.4 Relations aux facettes des modèles XML Schema

Les agents utilisateurs peuvent utiliser les informations disponibles dans une facette de modèle XML Schema (XML Schema pattern facet) pour établir le mode d'entrée. Notez qu'une facette de modèle est une restriction forte (hard restriction) sur la valeur lexicale d'un nœud de donnée d'instance (instance data node), qui peut spécifier des restrictions différentes pour les différentes parties de l'élément de données (data item). L'attribut inputmode est une simple allusion à propos des types de caractères que l'utilisateur commencera probablement à saisir dans la commande de formulaire. L'attribut inputmode est fourni en plus des facettes de modèle pour les raisons suivantes :

  1. L'ensemble des caractères admissibles spécifié dans un modèle peut être si grand qu'il n'est pas possible de déduire un réglage raisonnable du mode d'entrée. Néanmoins, il y aura fréquemment un type de caractère que l'utilisateur entrera très probablement. Auquel cas, l'attribut inputmode permet d'établir le mode d'entrée pour la commodité de l'utilisateur.

  2. Dans certains cas, il serait possible de dériver le réglage du mode d'entrée du modèle parce que le jeu de caractères admis dans le modèle correspond étroitement à un jeu de caractères couvert par une valeur de l'attribut inputmode. Toujours est-il qu'une telle dérivation demanderait beaucoup de données et de calculs sur l'agent utilisateur.

  3. Les petits appareils pourront laisser au serveur la vérification des modèles mais pourront facilement basculer vers les modes d'entrée qu'ils soutiennent. Qu'il soit possible de faciliter l'entrée des données par l'utilisateur revêt une importance particulière sur les petits appareils.

5.5 Exemples

Voici un exemple de formulaire pour entrer une adresse japonaise. L'exemple se présente sous forme d'un tableau ; celui-ci sera remplacé par une syntaxe réelle dans une version ultérieure de cette spécification.

Intitulé : inputmode
Nom de famille hiragana
(en kana) katakana
Prénom hiragana
(en kana) katakana
Code postal latin digits
Addresse hiragana
(en kana) katakana
Email latin lowerCase
Téléphone latin digits
Commentaires user predictOn

6. Remerciements

La version 1.0 de cette spécification a été préparée par le groupe de travail HTML du W3C. À la publication de la première édition, ses membres comprenaient :

La version 1.1 de cette spécification a été produite par le groupe de travail XHTML2 du W3C. À la publication de cette spécification, ses membres comprenaient :

Merci à Gary Adams (Sun Microsystems), Jonny Axelsson (Metastasis design), Peter Chen (Philips), Dan Connolly (W3C), John Cowan (Reuters), Martin J. Dürst (W3C), Johan Hjelm (Ericsson), Ian Jacobs (W3C), Susan Lesch (W3C), Louis Theran (Nokia), Quinton Zondervan (Lotus), membres du groupe d'intérêts Mobile Access du W3C, du groupe de travail Synchronized Multimedia du W3C, du groupe de travail WAI Protocols and Formats du W3C, et à l'Open Mobile Alliance pour avoir collaboré, revu et commenté ce document.

A. Références

A.1. Références normatives

[HTML4]
Spécification HTML 4.01, recommandation du W3C, D. Raggett, A. Le Hors, I. Jacobs, rédacteurs, 24 décembre 1999.
Disponible à : http://www.w3.org/TR/1999/REC-html401-19991224
La dernière version est disponible à : http://www.w3.org/TR/html4
[RFC2854]
Le type de média "text/html", D. Connely, L. Masinter, janvier 2000.
Disponible à : http://www.ietf.org/rfc/rfc2854.txt
[RFC3236]
Le type de média "application/xhtml+xml", M. Baker, P. Stark, janvier 2002.
Disponible à : http://www.ietf.org/rfc/rfc3236.txt
[XHTML1]
Le langage de balisage extensible XHTML 1.0 — Une reformulation de HTML 4 en XML 1.0, recommandation du W3C, Steven Pemberton et al., 26 janvier 2000, révisé le 1 août 2002.
Disponible à : http://www.w3.org/TR/2002/REC-xhtml1-20020801
La dernière version est disponible à : http://www.w3.org/TR/xhtml1
[XHTMLMOD]
XHTML Modularization 1.0, recommandation du W3C, Shane McCarron, et. al. rédacteurs, 10 avril 2001.
Disponible à : http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410
La dernière version est disponible à : http://www.w3.org/TR/xhtml-modularization
[XML]
Langage de balisage extensible (XML) 1.0 (quatrième édition), recommandation du W3C, T. Bray, J. Paoli, C. M. Sperberg-McQueen, E. Maler, F. Yergeau, rédacteurs, 16 août 2006.
Disponible à : http://www.w3.org/TR/2006/REC-xml-20060816
La dernière version est disponible à : http://www.w3.org/TR/REC-xml

A.2. Références informatives

[CHTML]
Compact HTML for Small Information Appliances, Note du W3C, T. Kamada, 9 février 1998.
Disponible à : http://www.w3.org/TR/1998/NOTE-compactHTML-19980209
[GUIDELINES]
Directives HTML 4.0 pour l'accès mobile, Note du W3C, T. Kamada, T. Asada, M. Ishikawa, S. Matsui, rédacteurs, 15 mars 1999.
Disponible à : http://www.w3.org/TR/1999/NOTE-html40-mobile-19990315
La dernière version est disponible à : http://www.w3.org/TR/NOTE-html40-mobile
Java Unicode Blocks
Java 2 Platform, Standard Edition, v 1.4.0 API Specification; Class Character.UnicodeBlock, Sun Microsystems, Inc, 2002. Disponible à : http://java.sun.com/j2se/1.4/docs/api/java/lang/Character.UnicodeBlock.html.
Mobile Web Best Practices
Pratiques exemplaires du Web mobile 1.0, recommandation du W3C, Jo Rabin, Charles McCathieNevile, rédacteurs, 29 juillet 2008.
Disponible à : http://www.w3.org/TR/2008/REC-mobile-bp-20080729
La dernière version est disponible à : http://www.w3.org/TR/mobile-bp
UAAG 1.0
Directives pour l'accessibilité des agents utilisateurs 1.0, Ian Jacobs, Jon Gunderson, Eric Hansen, 2002. Version préliminaire disponible à : http://www.w3.org/TR/UAAG10/.
Unicode Scripts
Script Names, Mark Davis, 2001. Unicode Technical Report #24 disponible à : http://www.unicode.org/unicode/reports/tr24/.
[WCAG10]
Directives pour l'accessibilité du contenu Web 1.0, recommandation du W3C, W. Chisholm, G. Vanderheiden, I. Jacobs, rédacteurs, 5 mai 1999.
Disponible à : http://www.w3.org/TR/1999/WAI-WEBCONTENT-19990505
La dernière version est disponible à : http://www.w3.org/TR/WCAG10
[WML]
Wireless Markup Language Specification, WAP Forum Ltd. Le WAP Forum a fusionné avec l'Open Mobile Alliance (OMA). Les travaux de spécification sur le protocole WAP se poursuivent au sein de l'OMA et sont visibles sur le site web de l'OMA à http://www.openmobilealliance.org/tech/affiliates/wap/wapindex.html
[XFORMS]
XForms 1.0 (troisième édition), John M Boyer, 29 octobre 2007.
La dernière version est disponible à : http://www.w3.org/TR/xforms
[XHTMLMIME]
Types média XHTML, Masayasu Ishikawa, 1 août 2002.
La dernière version est disponible à : http://www.w3.org/TR/xhtml-media-types

B. Définition du type de document XHTML Basic

Cette annexe est normative.

La mise en œuvre DTD de XHTML Basic 1.1 est contenue dans cette annexe. Des liens vont directement aux divers fichiers, qui sont également inclus dans les archives « TAR Gzip » et « ZIP » reliées au début du document. Veuillez noter que les fichiers visés par les liens « cette version » sont susceptibles de changer légèrement dans le temps avec les publications de nouvelles recommandations du W3C.

B.1. Entrée Open Catalog SGML de XHTML Basic

Cette section contient la définition au format Open Catalog SGML des identificateurs publics de XHTML Basic.

Cette version du fichier est récupérable à http://www.w3.org/TR/2008/REC-xhtml-basic-20080729/xhtml-basic11.cat. La dernière version est disponible à http://www.w3.org/MarkUp/DTD/xhtml-basic11.cat.

-- .......................................................................... --
-- File catalog  ............................................................ --

--  XHTML Basic Catalog Data File

    Revision:  $Id: index.html,v 1.1 2008/07/26 17:02:25 jules Exp $ SMI

    See "Entity Management", SGML Open Technical Resolution 9401 for detailed
    information on supplying and using catalog data. This document is available
    from OASIS at URL:

        <http://www.oasis-open.org/html/tr9401.html>
--

-- .......................................................................... --
-- SGML declaration associated with XML  .................................... --

OVERRIDE YES

SGMLDECL "xml1.dcl"

-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: --

-- XHTML Basic DTD modular driver file  ..................................... --

PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN"                       "xhtml-basic11.dtd"

-- XHTML Basic framework module ............................................. --

PUBLIC "-//W3C//ENTITIES XHTML Basic 1.1 Document Model 1.0//EN"  "xhtml-basic11-model-1.mod"

-- XHTML Inputmode module       ............................................. --

PUBLIC "-//W3C//ELEMENTS XHTML Inputmode 1.0//EN"  "xhtml-inputmode-1.mod"

-- End of catalog data  ..................................................... --
-- .......................................................................... --

B.2. Pilote XHTML Basic

Cette section contient le pilote (driver) de la mise en œuvre du type de document XHTML Basic comme une définition DTD XML. Il repose sur les mises en œuvre des modules XHTML définis dans [XHTMLMOD].

Cette version du fichier est récupérable à http://www.w3.org/TR/2008/REC-xhtml-basic-20080729/xhtml-basic11.dtd. La dernière version est disponible à http://www.w3.org/MarkUp/DTD/xhtml-basic11.dtd.

<!-- XHTML Basic 1.1 DTD  ...................................................... -->
<!-- file: xhtml-basic11.dtd -->

<!-- XHTML Basic 1.1 DTD

     This is XHTML Basic, a proper subset of XHTML.

     The Extensible HyperText Markup Language (XHTML)
     Copyright 1998-2007 World Wide Web Consortium
        (Massachusetts Institute of Technology, European Research Consortium
         for Informatics and Mathematics, Keio University).
         All Rights Reserved.

     Permission to use, copy, modify and distribute the XHTML Basic DTD
     and its accompanying documentation for any purpose and without fee is
     hereby granted in perpetuity, provided that the above copyright notice
     and this paragraph appear in all copies.  The copyright holders make
     no representation about the suitability of the DTD for any purpose.

     It is provided "as is" without expressed or implied warranty.

        Editors:    Murray M. Altheim <mailto:altheim@eng.sun.com>
                    Peter Stark       <mailto:Peter.Stark@ecs.ericsson.se>
                    Shane McCarron    <mailto:shane@aptest.com>
        Revision:   $Id: index.html,v 1.1 2008/07/26 17:02:25 jules Exp $

-->
<!-- This is the driver file for version 1.1 of the XHTML Basic DTD.

     This DTD is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC: "-//W3C//DTD XHTML Basic 1.1//EN"
     SYSTEM: "http://www.w3.org/MarkUp/DTD/xhtml-basic11.dtd"
-->
<!ENTITY % XHTML.version  "-//W3C//DTD XHTML Basic 1.1//EN" >

<!-- Use this URI to identify the default namespace:

         "http://www.w3.org/1999/xhtml"

     See the Qualified Names module for information
     on the use of namespace prefixes in the DTD.
-->
<!ENTITY % NS.prefixed "IGNORE" >
<!ENTITY % XHTML.prefix  "" >

<!-- Reserved for use with the XLink namespace:
-->
<!ENTITY % XLINK.xmlns "" >
<!ENTITY % XLINK.xmlns.attrib "" >

<!-- For example, if you are using XHTML Basic 1.1 directly, use
     the public identifier in the DOCTYPE declaration, with the namespace
     declaration on the document element to identify the default namespace:

         <?xml version="1.0"?>
         <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN"
             "http://www.w3.org/MarkUp/DTD/xhtml-basic11.dtd" >
         <html xmlns="http://www.w3.org/1999/xhtml"
               xml:lang="en" >
         ...
         </html>
-->

<!-- reserved for future use with document profiles -->
<!ENTITY % XHTML.profile  "" >

<!-- Bidirectional Text features
     This feature-test entity is used to declare elements
     and attributes used for bidirectional text support.
-->
<!ENTITY % XHTML.bidi  "IGNORE" >

<?doc type="doctype" role="title" { XHTML Basic 1.1 } ?>

<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->

<!ENTITY % xhtml-events.module   "INCLUDE" >
<!ENTITY % xhtml-bdo.module      "%XHTML.bidi;" >

<!-- Inline Style Module  ........................................ -->
<!ENTITY % xhtml-inlstyle.module "INCLUDE" >
<![%xhtml-inlstyle.module;[
<!ENTITY % xhtml-inlstyle.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Inline Style 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-inlstyle-1.mod" >
%xhtml-inlstyle.mod;]]>


<!ENTITY % xhtml-model.mod
     PUBLIC "-//W3C//ENTITIES XHTML Basic 1.1 Document Model 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-basic11-model-1.mod" >

<!ENTITY % xhtml-framework.mod
     PUBLIC "-//W3C//ENTITIES XHTML Modular Framework 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-framework-1.mod" >
%xhtml-framework.mod;

<!ENTITY % pre.content
     "( #PCDATA
      | %InlStruct.class;
      %InlPhras.class;
      %Anchor.class;
      %Inline.extra; )*"
>

<!ENTITY % xhtml-text.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Text 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-text-1.mod" >
%xhtml-text.mod;

<!ENTITY % xhtml-hypertext.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Hypertext 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-hypertext-1.mod" >
%xhtml-hypertext.mod;

<!ENTITY % xhtml-list.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Lists 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-list-1.mod" >
%xhtml-list.mod;

<!-- Add in the value attribute to the li element -->
<!ATTLIST %li.qname;
      value        %Number.datatype;         #IMPLIED
>

<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->

<!-- Scripting Module  ........................................... -->
<!ENTITY % xhtml-script.module "INCLUDE" >
<![%xhtml-script.module;[
<!ENTITY % xhtml-script.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Scripting 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-script-1.mod" >
%xhtml-script.mod;]]>

<!-- Style Sheets Module  ......................................... -->
<!ENTITY % xhtml-style.module "INCLUDE" >
<![%xhtml-style.module;[
<!ENTITY % xhtml-style.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Style Sheets 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-style-1.mod" >
%xhtml-style.mod;]]>

<!-- Image Module  ............................................... -->
<!ENTITY % xhtml-image.module "INCLUDE" >
<![%xhtml-image.module;[
<!ENTITY % xhtml-image.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Images 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-image-1.mod" >
%xhtml-image.mod;]]>

<!-- Tables Module ............................................... -->
<!ENTITY % xhtml-table.module "INCLUDE" >
<![%xhtml-table.module;[
<!ENTITY % xhtml-table.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Basic Tables 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-basic-table-1.mod" >
%xhtml-table.mod;]]>

<!-- Forms Module  ............................................... -->
<!ENTITY % xhtml-form.module "INCLUDE" >
<![%xhtml-form.module;[
<!ENTITY % xhtml-form.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Forms 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-form-1.mod" >
%xhtml-form.mod;]]>

<!-- Presentation Module  ........................................ -->
<!ENTITY % xhtml-pres.module "INCLUDE" >
<![%xhtml-pres.module;[
<!ENTITY % xhtml-pres.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Presentation 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-pres-1.mod" >
%xhtml-pres.mod;]]>

<!-- Link Element Module  ........................................ -->
<!ENTITY % xhtml-link.module "INCLUDE" >
<![%xhtml-link.module;[
<!ENTITY % xhtml-link.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Link Element 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-link-1.mod" >
%xhtml-link.mod;]]>

<!-- Document Metainformation Module  ............................ -->
<!ENTITY % xhtml-meta.module "INCLUDE" >
<![%xhtml-meta.module;[
<!ENTITY % xhtml-meta.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Metainformation 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-meta-1.mod" >
%xhtml-meta.mod;]]>

<!-- Base Element Module  ........................................ -->
<!ENTITY % xhtml-base.module "INCLUDE" >
<![%xhtml-base.module;[
<!ENTITY % xhtml-base.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Base Element 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-base-1.mod" >
%xhtml-base.mod;]]>

<!-- Param Element Module  ....................................... -->
<!ENTITY % xhtml-param.module "INCLUDE" >
<![%xhtml-param.module;[
<!ENTITY % xhtml-param.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Param Element 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-param-1.mod" >
%xhtml-param.mod;]]>

<!-- Embedded Object Module  ..................................... -->
<!ENTITY % xhtml-object.module "INCLUDE" >
<![%xhtml-object.module;[
<!ENTITY % xhtml-object.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Embedded Object 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-object-1.mod" >
%xhtml-object.mod;]]>

<!-- Inputmode Attribute Module  .................................. -->
<!ENTITY % xhtml-inputmode.module "INCLUDE" >
<![%xhtml-inputmode.module;[
<!ENTITY % xhtml-inputmode.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Inputmode 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-inputmode-1.mod" >
%xhtml-inputmode.mod;]]>

<!-- Target Attribute Module  .................................... -->
<!ENTITY % xhtml-target.module "INCLUDE" >
<![%xhtml-target.module;[
<!ENTITY % xhtml-target.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Target 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-target-1.mod" >
%xhtml-target.mod;]]>


<!ENTITY % xhtml-struct.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Document Structure 1.0//EN"
            "http://www.w3.org/MarkUp/DTD/xhtml-struct-1.mod" >
%xhtml-struct.mod;

<!-- end of XHTML Basic 1.1 DTD  ........................................... -->

B.3. Adaptations XHTML Basic

Un type de document de la famille XHTML (tel que XHTML Basic) doit définir le modèle de contenu qu'il utilise. Il le fait au travers d'un module de modèle de contenu séparé qui est instancié par le cadre modulaire XHTML. Le module de modèle de contenu et le pilote XHTML Basic (précédent) fonctionnent de concert pour adapter (customize) les mises en œuvre des modules aux exigences particulières du type de document. Le module de modèle de contenu de XHTML Basic est défini ci-dessous :

Cette version du fichier est récupérable à http://www.w3.org/TR/2008/REC-xhtml-basic-20080729/xhtml-basic11-model-1.mod. La dernière version est disponible à http://www.w3.org/MarkUp/DTD/xhtml-basic11-model-1.mod.

<!-- ....................................................................... -->
<!-- XHTML Basic 1.1 Document Model Module  .................................... -->
<!-- file: xhtml-basic11-model-1.mod

     This is XHTML Basic, a proper subset of XHTML.
     Copyright 1998-2007 W3C (MIT, ERCIM, Keio), All Rights Reserved.
     Revision: $Id: index.html,v 1.1 2008/07/26 17:02:25 jules Exp $ SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

       PUBLIC "-//W3C//ENTITIES XHTML Basic 1.1 Document Model 1.0//EN"
       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-basic11-model-1.mod"

     Revisions:
     (none)
     ....................................................................... -->

<!-- XHTML Basic Document Model

     This module describes the groupings of elements that make up
     common content models for XHTML elements.
-->

<!-- Optional Elements in head  .............. -->

<!ENTITY % HeadOpts.mix
     "( %script.qname; | %style.qname; | %meta.qname; 
      | %link.qname; | %object.qname; )*" >

<!-- script and noscript are used to contain scripts
     and alternative content
-->
<!ENTITY % Script.class "| %script.qname; | %noscript.qname;" >

<!-- Miscellaneous Elements  ................. -->

<!ENTITY % Misc.extra "" >

<!-- These elements are neither block nor inline, and can
     essentially be used anywhere in the document body.
-->
<!ENTITY % Misc.class
     "%Script.class;
      %Misc.extra;"
>

<!-- Inline Elements  ........................ -->

<!ENTITY % InlStruct.class "%br.qname; | %span.qname;" >

<!ENTITY % InlPhras.class
     "| %em.qname; | %strong.qname; | %dfn.qname; | %code.qname;
      | %samp.qname; | %kbd.qname; | %var.qname; | %cite.qname;
      | %abbr.qname; | %abbr.qname; | %q.qname;" >

<!ENTITY % InlPres.class
     "| %tt.qname; | %i.qname; | %b.qname; | %big.qname;
      | %small.qname; | %sub.qname; | %sup.qname;" >

<!ENTITY % I18n.class "" >

<!ENTITY % Anchor.class "| %a.qname;" >

<!ENTITY % InlSpecial.class "| %img.qname; | %object.qname;" >

<!ENTITY % InlForm.class
     "| %input.qname; | %select.qname; | %textarea.qname;
      | %label.qname; | %button.qname;" >

<!ENTITY % Inline.extra "" >

<!ENTITY % Inline.class
     "%InlStruct.class;
      %InlPhras.class;
      %InlPres.class;
      %Anchor.class;
      %InlSpecial.class;
      %InlForm.class;
      %Inline.extra;"
>

<!ENTITY % InlNoAnchor.class
     "%InlStruct.class;
      %InlPhras.class;
      %InlPres.class;
      %InlSpecial.class;
      %InlForm.class;
      %Inline.extra;"
>

<!ENTITY % InlNoAnchor.mix
     "%InlNoAnchor.class;
      %Misc.class;"
>

<!ENTITY % Inline.mix
     "%Inline.class;
      %Misc.class;"
>

<!-- Block Elements  ......................... -->

<!ENTITY % Heading.class
     "%h1.qname; | %h2.qname; | %h3.qname;
      | %h4.qname; | %h5.qname; | %h6.qname;"
>
<!ENTITY % List.class  "%ul.qname; | %ol.qname; | %dl.qname;" >

<!ENTITY % Table.class "| %table.qname;" >

<!ENTITY % Form.class  "| %form.qname;" >

<!ENTITY % Fieldset.class  "| %fieldset.qname;" >

<!ENTITY % BlkStruct.class "%p.qname; | %div.qname;" >

<!ENTITY % BlkPhras.class
     "| %pre.qname; | %blockquote.qname; | %address.qname;"
>

<!ENTITY % BlkPres.class "| %hr.qname;" >

<!ENTITY % BlkSpecial.class
     "%Table.class;
      %Form.class;
      %Fieldset.class;"
>

<!ENTITY % Block.extra "" >

<!ENTITY % Block.class
     "%BlkStruct.class;
      %BlkPhras.class;
      %BlkPres.class;
      %BlkSpecial.class;
      %Block.extra;"
>

<!ENTITY % Block.mix
     "%Heading.class;
      | %List.class;
      | %Block.class;
      %Misc.class;"
>

<!-- All Content Elements  ................... -->

<!-- declares all content except tables
-->
<!ENTITY % FlowNoTable.mix
     "%Heading.class;
      | %List.class;
      | %BlkStruct.class;
      %BlkPhras.class;
      %Form.class;
      %Block.extra;
      | %Inline.class;
      %Misc.class;"
>

<!ENTITY % Flow.mix
     "%Heading.class;
      | %List.class;
      | %Block.class;
      | %Inline.class;
      %Misc.class;"
>

<!-- end of xhtml-basic11-model-1.mod -->

Enfin nous définissons le nouveau module d'attribut inputmode.

Cette version du fichier est récupérable à http://www.w3.org/TR/2008/REC-xhtml-basic-20080729/xhtml-inputmode-1.mod. La dernière version est disponible à http://www.w3.org/MarkUp/DTD/xhtml-inputmode-1.mod.

<!-- ...................................................................... -->
<!-- XHTML Inputmode Module  .............................................. -->
<!-- file: xhtml-inputmode-1.mod

     This is XHTML, a reformulation of HTML as a modular XML application.
     Copyright 1998-2007 W3C (MIT, ERCIM, Keio), All Rights Reserved.
     Revision: $Id: index.html,v 1.1 2008/07/26 17:02:25 jules Exp $

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

       PUBLIC "-//W3C//ELEMENTS XHTML Inputmode 1.0//EN"
       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-inputmode-1.mod"

     Revisions:
     (none)
     ....................................................................... -->

<!-- Inputmode 

        inputmode

     This module declares the 'inputmode' attribute used for suggesting the
     input mode associated with an input or textarea element.
-->

<!-- render in this frame --> 
<!ENTITY % Inputmode.datatype "CDATA" >

<!-- add 'inputmode' attribute to 'input' element -->
<!ATTLIST %input.qname;
      inputmode       %Inputmode.datatype;   #IMPLIED
>

<!-- add 'inputmode' attribute to 'textarea' element -->
<!ATTLIST %textarea.qname;
      inputmode       %Inputmode.datatype;   #IMPLIED
>

<!-- end of xhtml-inputmode-1.mod -->