Copyright © 1999-2000 W3C® (MIT, INRIA, Keio), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply.
The XHTML Basic document type includes the minimal set of modules required to be an XHTML Host Language document type, and in addition it includes images, forms, basic tables, and object support. It is designed for Web clients that do not support the full set of XHTML features; for example, Web clients such as mobile phones, PDAs, pagers, and settop boxes. The document type is rich enough for content authoring.
XHTML Basic is designed as a common base that may be extended. For example, an event module that is more generic than the traditional HTML 4 event system could be added or it could be extended by additional modules from XHTML Modularization such as the Script Module. The point is that XHTML Basic always is the common language that user agents support.
The document type definition is implemented using XHTML modules as defined in "Modularization of XHTML" [XHTMLMOD].
This section describes the status of this document at the time of its publication. Other documents may supersede this document. The latest status of this document series is maintained at the W3C.
On 3 November 2000, this document enters a Proposed Recommendation review period. From that date until 3 December 2000, W3C Advisory Committee representatives are encouraged to review this specification and return comments in their completed ballots to w3c-xhtml-basic-review@w3.org. Comments sent to this list will be made visible to Members after the review. Please send any comments of a confidential nature in separate email to w3t-html@w3.org, which is visible to the Team only.
After the review, the Director will announce the document's disposition: it may become a W3C Recommendation (possibly with minor changes), it may revert to Working Draft status, or it may be dropped as a W3C work item. This announcement should not be expected sooner than 14 days after the end of the review.
At the time of this publication, "Modularization of XHTML" [XHTMLMOD], which defines XHTML modules used in the XHTML Basic document type, is in a Candidate Recommendation phase.
Public discussion of HTML takes place on www-html@w3.org (archive). To subscribe send an email to www-html-request@w3.org with the word subscribe in the subject line.
Please report errors in this document to www-html-editor@w3.org (archive).
This document has been produced as part of the W3C HTML Activity, and it has been prepared by the Mobile Subgroup of the W3C HTML Working Group (members only) based on input from the WAP Forum Application's group and members of the W3C Mobile Access Interest Group (members only). This document will be used by the Mobile Subgroup of the W3C HTML Working Group and the W3C Mobile Access Interest Group to find a common ground for future markup languages aimed at content for small information appliances.
Publication as a Proposed Recommendation does not imply endorsement by the W3C Membership. This is still a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite W3C Proposed Recommendations as other than "work in progress." A list of current W3C Recommendations and other technical documents can be found at http://www.w3.org/TR.
HTML 4 was designed for large devices, overlapping windows/frames menus, mouse input pointing device, high powered CPU, large power supply. Requiring a full fledged computer for access to the World Wide Web excludes a large portion of the population from consumer device access of online information and services.
Because there are many ways to subset HTML, there are many almost identical subsets defined by organizations and companies. Without a common base set of features, developing applications for a wide range of Web clients is difficult.
The motivation for XHTML Basic is to provide an XHTML document type that can be shared across communities (e.g. desktop, TV, and mobile phones), and that is rich enough to be used for simple content authoring. New community-wide document types can be defined by extending XHTML Basic in such a way that XHTML Basic documents are in the set of valid documents of the new document type. Thus an XHTML Basic document can be presented on the maximum number of Web clients.
The document type definition for XHTML Basic is implemented based on the XHTML modules defined in Modularization of XHTML [XHTMLMOD].
Information appliances are targeted for particular uses. They support the features they need for the functions they are designed to fulfill. The following are examples of different information appliances:
Existing subsets and variants of HTML for these clients include "Compact HTML" [CHTML], the Wireless Markup Language [WML], and the "HTML 4.0 Guidelines for Mobile Access" [GUIDELINES]. The common features found in these document types include:
This set of HTML features has been the starting point for the design of XHTML Basic. The fact that most content developers are familiar with HTML makes it appropriate as a host language, that include markup modules from other languages using the methods described in "Modularization of XHTML" [XHTMLMOD]. For example, XHTML Basic may be extended with an event module that is more generic than the traditional HTML 4 event system or it could be extended by additional modules from XHTML Modularization such as the Script Module.
It is not the intention of XHTML Basic to limit the functionality of future languages. But since the features in HTML 4 (frames, advanced tables, a fixed set of attribute event handlers, etc.) were developed for a desktop computer type of client, they have proved to be inappropriate for many non-desktop devices. XHTML Basic will be extended and built upon. Extending XHTML from a common and basic set of features, instead of almost identical subsets or the too-large set of functions in HTML 4, will be good for interoperability on the Web, as well as for scalability.
Compared to the rich functionality of HTML 4, XHTML Basic may look like one step back, but in fact, it is two steps forward for clients that do not need what is in HTML 4 and for content developers who get one XHTML subset instead of many.
This section explains why certain HTML features are not part of XHTML Basic.
The style
element is not supported. External style sheets
are recommended. The link
element can be used to include
external style sheets. The div
and span
elements and the class
attribute are supported to hook
style information onto the structure. Separation between structure and
presentation allows user agents to download the style sheets if they
support style sheets; user agents that do not support style sheets
can ignore the external stylesheet. The media
attribute can be
used to select the appropriate style sheets. See the section on "Media
types" in the HTML
4.01 specification ([HTML4], section 14.2.4)
for more details.
The script
and noscript
elements are
not supported. Usually small devices have limited memory and
CPU power.
Execution of script programs may not be supported. Contents
should be readable even if scripts are not executed.
Event handler attributes used to invoke script programs are not supported. Events are device dependent. An incoming-call event is unlikely to happen in a television. A generic event handling mechanism would be more appropriate than hardwiring the event names in the document type definition.
Many simple Web clients cannot display fonts other than monospace.
Bi-directional text, bold faced font, and other text extension elements
are not supported. However, phrasal elements such as emphasize,
em
, and headings are supported.
It is recommended that style sheets be used to create a presentation that is appropriate for the device.
Basic XHTML forms ([XHTMLMOD], section 5.5.1) are supported. Since only devices with a local file system can take advantage of file and image input types in forms, they are not included in the basic forms. Also, content developers should keep in mind that users may not be able to input many characters from some devices (e.g. a mobile phone).
Basic XHTML tables ([XHTMLMOD], section 5.6.1) are supported, but tables can be difficult to display on small devices. It is recommended that content developers follow the accessibility guidelines for tables ([WAI-WEBCONTENT], Guideline 5). Note that in the Basic Tables Module, nesting of tables is prohibited.
Frames are not supported. Frames depend on a screen interface and may not be applicable to some small appliances like phones, pagers, and watches.
This section is normative.
A Conforming XHTML Basic document is a document that requires only the facilities described as mandatory in this specification. Such a document must meet all of the following criteria:
<html>
.http://www.w3.org/1999/xhtml
.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
The user agent must conform to the "User Agent Conformance" section of the XHTML specification ([XHTML1], section 3.2).
This section is normative.
The XHTML Basic document type is defined as a set of XHTML modules. All XHTML modules are defined in the "Modularization of XHTML" specification [XHTMLMOD].
XHTML Basic consists of the following XHTML modules:
body, head, html, title
abbr, acronym, address, blockquote, br, cite, code, dfn, div, em,
h1, h2, h3, h4, h5, h6, kbd, p, pre, q, samp, span, strong, var
a
dl, dt, dd, ol, ul, li
form, input, label, select, option, textarea
caption, table, td, th, tr
img
object, param
meta
link
base
(*) = This module is a required XHTML Host Language module.
An XML 1.0 DTD is available in Appendix B.
NOTE: Since the HTML event handler attributes are not included in XHTML Basic, form controls outside forms may not function as expected by the user.
Although XHTML Basic can be used as it is - a simple XHTML language with text, links, and images - the intention of its simple design is for use as a host language. A host language can contain a mix of vocabularies all rolled into one document type. It is natural that XHTML is the host language, since that is what most Web developers are used to.
When markup from other languages is added to XHTML Basic, the resulting document type will be an extension of XHTML Basic. Content developers can develop for XHTML Basic or take advantage of the extensions. The point is that XHTML Basic always is the common language that user agents support.
Thanks to Gary Adams (Sun), Johan Hjelm (Ericsson), Wayne Carr (Intel), the W3C HTML Working Group, the WAP Forum Application's group, and the W3C Mobile Access Interest Group for contributing, reviewing and commenting on this document.
This appendix is normative.
This section contains the SGML Open Catalog-format definition of the XHTML Basic FPI.
-- .......................................................................... -- -- File catalog ............................................................ -- -- XHTML Basic Catalog Data File Revision: $Id: xhtml-basic10.cat,v 2.3 2000/11/03 12:28:45 mimasa 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 XHTML .................................. -- OVERRIDE YES SGMLDECL "xml1.dcl" -- for use with non-Unicode compatible parsers: -- -- SGMLDECL "xml1n.dcl" -- -- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -- -- XHTML Basic DTD modular driver file ..................................... -- PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "xhtml-basic10.dtd" -- XHTML Basic framework module ............................................. -- PUBLIC "-//W3C//ENTITIES XHTML Basic 1.0 Document Model 1.0//EN" "xhtml-basic10-model-1.mod" -- End of catalog data ..................................................... -- -- .......................................................................... --
This section contains the driver for the XHTML Basic document type implementation as an XML DTD. It relies upon XHTML module implementations defined in [XHTMLMOD].
NOTE: [XHTMLMOD] is in a Candidate Recommendation phase at the time of this publication. Though the HTML Working Group doesn't expect major changes to those modules, minor changes might be possible.
<!-- XHTML Basic 1.0 DTD ...................................................... --> <!-- file: xhtml-basic10.dtd --> <!-- XHTML Basic 1.0 DTD This is XHTML Basic, a proper subset of XHTML. The Extensible HyperText Markup Language (XHTML) Copyright 1998-2000 World Wide Web Consortium (Massachusetts Institute of Technology, Institut National de Recherche en Informatique et en Automatique, 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> Revision: $Id: xhtml-basic10.dtd,v 2.12 2000/11/03 12:44: mimasa Exp $ SMI --> <!-- This is the driver file for version 1.0 of the XHTML Basic DTD. This DTD is identified by the PUBLIC and SYSTEM identifiers: PUBLIC: "-//W3C//DTD XHTML Basic 1.0//EN" SYSTEM: "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd" --> <!ENTITY % XHTML.version "-//W3C//DTD XHTML Basic 1.0//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.0 directly, use the FPI in the DOCTYPE declaration, with the xmlns attribute on the document element to identify the default namespace: <?xml version="1.0"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.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.0 } ?> <!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: --> <!ENTITY % xhtml-events.module "IGNORE" > <!ENTITY % xhtml-bdo.module "%XHTML.bidi;" > <!ENTITY % xhtml-model.mod PUBLIC "-//W3C//ENTITIES XHTML Basic 1.0 Document Model 1.0//EN" "http://www.w3.org/TR/2000/xhtml-basic/xhtml-basic10-model-1.mod" > <!ENTITY % xhtml-framework.mod PUBLIC "-//W3C//ENTITIES XHTML Modular Framework 1.0//EN" "http://www.w3.org/TR/xhtml-modularization/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/TR/xhtml-modularization/DTD/xhtml-text-1.mod" > %xhtml-text.mod; <!ENTITY % xhtml-hypertext.mod PUBLIC "-//W3C//ELEMENTS XHTML Hypertext 1.0//EN" "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-hypertext-1.mod" > %xhtml-hypertext.mod; <!ENTITY % xhtml-list.mod PUBLIC "-//W3C//ELEMENTS XHTML Lists 1.0//EN" "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-list-1.mod" > %xhtml-list.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/TR/xhtml-modularization/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/TR/xhtml-modularization/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 Basic Forms 1.0//EN" "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-basic-form-1.mod" > %xhtml-form.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/TR/xhtml-modularization/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/TR/xhtml-modularization/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/TR/xhtml-modularization/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/TR/xhtml-modularization/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/TR/xhtml-modularization/DTD/xhtml-object-1.mod" > %xhtml-object.mod;]]> <!ENTITY % xhtml-struct.mod PUBLIC "-//W3C//ELEMENTS XHTML Document Structure 1.0//EN" "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-struct-1.mod" > %xhtml-struct.mod; <!-- end of XHTML Basic 1.0 DTD ........................................... -->
An XHTML Family Document Type (such as XHTML Basic) must define the content model that it uses. This is done through a separate content model module that is instantiated by the XHTML Modular Framework. The content model module and the XHTML Basic Driver (above) work together to customize the module implementations to the document type's specific requirements. The content model module for XHTML Basic is defined below:
<!-- ....................................................................... --> <!-- XHTML Basic 1.0 Document Model Module .................................... --> <!-- file: xhtml-basic10-model-1.mod This is XHTML Basic, a proper subset of XHTML. Copyright 1998-2000 W3C (MIT, INRIA, Keio), All Rights Reserved. Revision: $Id: xhtml-basic10-model-1.mod,v 2.8 2000/11/03 14:28:25 mimasa Exp $ SMI This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ENTITIES XHTML Basic 1.0 Document Model 1.0//EN" SYSTEM "http://www.w3.org/TR/xhtml-basic/xhtml-basic10-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 "( %meta.qname; | %link.qname; | %object.qname; )*" > <!-- Miscellaneous Elements ................. --> <!ENTITY % Misc.class "" > <!-- 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; | %acronym.qname; | %q.qname;" > <!ENTITY % InlPres.class "" > <!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;" > <!ENTITY % Inline.extra "" > <!ENTITY % Inline.class "%InlStruct.class; %InlPhras.class; %Anchor.class; %InlSpecial.class; %InlForm.class; %Inline.extra;" > <!ENTITY % InlNoAnchor.class "%InlStruct.class; %InlPhras.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 % BlkStruct.class "%p.qname; | %div.qname;" > <!ENTITY % BlkPhras.class "| %pre.qname; | %blockquote.qname; | %address.qname;" > <!ENTITY % BlkPres.class "" > <!ENTITY % BlkSpecial.class "%Table.class; %Form.class;" > <!ENTITY % Block.extra "" > <!ENTITY % Block.class "%BlkStruct.class; %BlkPhras.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-basic10-model-1.mod -->