The colors of this site are rendered correct in MS IE 4.0+, Opera 3.6x+ and Netscape 6.0+/ corresponding Mozilla browsers. This site works overall best with the newest Opera and Mozilla browsers (details). Also Netscape 6.1+, MS IE 5.5+ for Windows, MS IE 5.0 for Mac and new NeoPlanet browsers render this site quite well. The presentation is poor with Netscape 4.x and it has some clear rendering errors. It doesn't render either advisory titles of some elements and all internal links don't work.

I list below all topic groups, which I have done according to subjects, which they handle. You can return to this topic group by using this menu and the link Table of topic groups on the top of the each page.
Table of topic groupsFront page of help pages(X)HTML/WML tables - Notes > 6. WML 1.2 and 2.0 tags
6. WML 1.2 and 2.0 tags
?xml, !DOCTYPE These are encoding language and document type declarations.

WML 1.1 has an invalid DTD-information (the document type is informed as an xml-file even if DTD-file is not an xml-file):

<?xml version="1.0"?>

This is fixed in WML 1.2, which have following declarations:

<?xml version="1.0"?>

Because these languages don't have just now really extension mechanism, they are not required. According to some e-mails, future versions of WML base on the XHTML Basic™, when the DTD-declaration is really needed. Because WML 1.2 is so messy, it is a quite bad basis to future versions.

HTML notes: Declarations.
W3C: XHTML Basic™.
wml (WML 1.2)  
html (WML 2.0)

The element wml is the root element in WML 1.2. The only required child-element is the element card. In WML 2.0, the root element is HTML. The attribute wml:use-xml-fragments is added presumably because WML 2.0 includes at least some fragments from the Legacy Module, the Presentation Module and the Forms Module, but not whole modules.


The head element is in principle the same as in HTML, but different content. It is not required in WML 1.2 but required in WML 2.0.

Other notes: access.
template (WML 1.2), card (WML 1.2), wml:card (WML 2.0)  
body (WML 2.0)

WML 1.2 doesn't have a singe gathering BODY-element but instead documents are divided into sections, which are like individual pages. The idea of WML is pack of cards (deck). The idea of sections might come from early HTML-document. In WML 2.0 instead of card are wml:card elements, which can be used as alternatives to the element BODY. Elements wml:card and BODY have the same attributes, but by using the element wml:card the prefix is unnecessary (instead of wml:onenterforward can be used just onenterforward).

With the template element can give certain common setting to all card elements in WML 1.2.

Converting WML to XHTML the element card is reasonable to have a class and it in HTML instead of the card element is used the DIV element (<card class="card"> >< <div class="card">).

WML 1.1 and WML 1.2 has equal content model except that the element pre is added to WML 1.2. WML 2.0 has much wider content model.

Short explanations of some attributes:
newcontext = initialize the browser context (variables and/or history). It works with the go element.
onenterforward = a "shortcut" of using onevent and go elements, for example <card onenterforward="/url"></card> is the same as following:

<onevent type="onenterforward">
<go href="/url"/>

ordered = this attribute specifies a hint to the user agent about the organisation of the card content.
ontimer = go the defined division, when the time, which is defined with the timer element expires (this is also a shortcut, which can be defined with an onevent element).

Other notes: pre, onevent go.
base (WML 2.0),link (WML 2.0), meta, style (WML 2.0), title (WML 2.0)  
access (WML 1.2), wml:access (WML 2.0)

The element access/wml:access is to control, which div have rights to go. In addition the element META has an additional forua/ wml:forua attribute. If the value is false an intermediate agent must remove the META element before the document is sent to the client. If the value is true the meta data of the element must be delivered to the user agent.

WML 2.0 includes also as child-elements of the element HEAD elements BASE, LINK, OBJECT, STYLE and TITLE. The element OBJECT can be used also outside the HEAD element and I explain the usage when handling embedded HTML-elements inside the BODY element.

Blooberry: META, Uses for the META Element.
<!-- + -->  
It is not recommended to include tags inside comments.
address (WML 2.0), blockquote (WML 2.0), h1-h6 (WML 2.0), pre These elements are classified in the Modularization of XHTML as Block Phrasal elements.

The element PRE is only in WML 1.2 and WML 2.0. WML 2.0 includes all phrasal block elements but WML 1.2 just one. The element BLOCKQUOTE has the same kind of content model as HTML 4.01 Strict, when typical inline level elements (for example STRONG) must be inside some block level element.

W3C: Block Phrasal, HTML 4.01 Specification (W3C Recommendation 24 December 1999), XHTML Basic™.
div (WML 2.0), p These elements p are classified in the Modularization of XHTML as Block Structural elements.

The element P has in WML 1.2 the same functions as elements DIV and P in HTML. For example it can be used as a divider between tables and content inside the element card. In WML 2.0 it not allowed to use tables a child-element of P. In WML 2.0 can use the DIV element with appropriate way instead of inappropriate usage of the P element.

Because of the backward compatibility with WML 1.2, the elements P and IMG have transitional attributes (like align) in WML 2.0. This is problematic because WML 2.0 includes the Legacy module only partial. The same problem concerns also the element U.

The fact that is has two tasks means, that using transformations between WML 1.2 and (X)HTML, P elements are reasonable to have several classes, which tell, if P must be converted to DIV or P elements in (X)HTML. It would have been more reasonable to separate these two elements, but in WML 1.2 the quantity of text elements quite minimal (too minimal).

Other notes: html, card, u, img.
W3C: Block Structural, Legacy Module.
dl, dt, dd, li, ol, ul WML 2.0 supports the List Module.

WML 2.0 support only such attributes, which belongs to HTML 4.01 Strict.

HTML notes: DL.
W3C: List Module.
caption (WML 2.0), table, th (WML 2.0), td, tr WML supports simple table model.

WML 2.0 support the Basic Tables Module except the attribute width for TABLE. WML 1.2 supports simpler model. In both models nested tables are not allowed.

The TABLE element must be in WML 1.2 inside a P element, which behaves at the same way as DIV in HTML. It is handled partially like an inline level element, because it can be for example a child of the element STRONG and it can have only text-level content. Because both the parent and content models are different as in HTML, which might cause problems in transformations using XSLT. This is changed in WML 2.0.

WML 1.2 use the column/ wml:column attribute, which is a proprietary HTML element to Netscape (indeed it could belong to the XHTML specifications too). If the actual number of columns in a row is less than the value specified by the columns attribute, the row must be effectively padded with empty columns (this has the same affect as with the rowspan attribute in HTML). If the actual number of columns in a row is greater than the value specified by the columns attribute, the extra columns of the row must be aggregated into the last column, such that the row contains exactly the number of columns specified.

The attribute align for the element TABLE concerns in WML 1.2 columns, not individual cell and it is a list of alignments of columns (for example align="LLRR": two first cell are left aligned and two last right aligned). That's why it is in WML 2.0 wml:align, because it should not mix to the align attribute in HTML.

Elements TH and TD have in WML 2.0 all HTML 4.01 attributes except char and charoff.

Other notes: P.
W3C: Basic Tables Module.
a It belongs in the Modularization of XHTML to the Hypertext Module.
anchor (WML 1.2), wml:anchor (WML 2.0)

Semantical A is the same as anchor/ wml:anchor with a go/ wml:go element. In practise the a element have the same task as in HTML. The anchor/ wml:anchor element can execute a single special WML task.

abbr (WML 2.0), acron (WML 2.0), cite (WML 2.0), code (WML 2.0), dfn (WML 2.0), em, kbd (WML 2.0), q (WML 2.0), samp (WML 2.0), strong, var (WML 2.0) They are classified in the Modularization of XHTML as Inline Phrasal elements.
span (WML 2.0) It is classified in the Modularization of XHTML as Inline Structural elements.
b, big, i, small They are classified in the Modularization of XHTML as Inline Presentational elements.
u It belongs in the Modularization of XHTML to the Legacy Module.

WML 2.0 includes all Inline Phrasal elements but previous versions only EM and STRONG. It includes also the SPAN element.

Inline Phrasal and elements Inline Presentational elements belong directly to the Text Module. WML includes partial the Presentation module, because elements SUB and SUP don't include to WML 2.0 and in addition WML 1.2 doesn't have the HR element, which belongs to Block Presentational elements.

In HTML these elements are pure inline-level element, but the division of inline and block level elements is mixed in WML and the behavior of these elements is flow. Compared to HTML they can be used both like block level and inline level elements. If they are used like block level element WML-HTML transformations I recommend to transform them as DIV elements, which use semantic classes and the presentation is defined with CSS in HTML, for example if you use <b class="divB"> it is in HTML <div class="divB">.

In my mind WML resembles bad HTML-encoding, where the writer use incorrect way inline level elements. This set of text elements doesn't have clear semantics and WML 1.0-1.2 is also semantically bad language. Also WML 2.0 has one element (U) and some attributes (for example the align attribute for the element P and vspace for the element IMG) from the Legacy module and most parts of but not totally the Presentation module. The purpose is maintain at the backward compatibility (or allow authors/ WAP-devices to use transitional elements or attributes, which is an "easier" way because CSS is not needed). In this connection backward compatibility cause that WML 1.2 is not so clear as it could be.

In reasonable transformation between WML and XHTML I recommend to use elements according to principles of the XHTML Basic™, when only elements EM and STRONG are used in WML. Other phrasal inline level elements are expressed with classes (for example <em class="var"> >< <var class="var">). Also the WML 1.1 specification recommends to use EM and STRONG instead of B and I elements.

img, object (WML 2.0) img belongs in the Modularization of XHTML to the Image Module and object to the Object Module.

Transitional attributes (align etc.) are in the Modularization of XHTML in the Legacy Module. WML supports some parts of the Legacy Module (I handle these matters, when I handle the element U etc.). The attribute name don't belong to OBJECT in XHTML Basic as it belongs to WML 2.0. Because in the Modularization of XHTML in the Name Identification Module for the element APPLET, which concerns certain kinds of embedded objects. W3C recommends not to use this module, if it is not absolutely necessary. It is strange, why this attributes in WML 2.0 for the element OBJECT.

Some WML-browsers support only special WBMP images, but some other read also common used JPG and GIF image formats. The attribute localscr/ wml:localsrc specifies an alternative internal representation for the image with build-in images. Any localsrc/ wml:localsrc parameter specified takes precedence over the image specified in the src parameter.

WML 2.0 support also embedded objects through the OBJECT element, but image maps are not supported.

fieldset, form (WML 2.0) They belong in the Modularization of XHTML to the Forms Module.

The set of form control elements in WML 1.2 is messy. Compared to the Modularization of XHTML it has elements, which don't belong to the Basic Forms Module but only to the Forms Module (fieldset and optgroup). This matter concerns also WML 2.0, which in other respects use elements and attributes, which belong to the Basic Forms Module except adding the attribute tabindex to some elements.

WML 1.2 lacks single gathering form element, which is in HTML the element FORM. Indeed the element fieldset can be used to this purpose, but it can't take necessary attribute. The attribute method, which is given in HTML to the element FORM, in in WML 1.2 given to a descendant element (go). That creates difficulties between transformations between HTML and WML. In WML 2.0 this is fixed.

Other notes: go.
W3C: Basic Forms Module, Forms Module.
do (WML 1.2), onevent (WML 1.2), timer (WML 1.2), wml:do (WML 2.0), wml:onevent (WML 2.0), wml:timer (WML 2.0)  

The element do creates in WML 1.2 a button, and it resemble in HTML the element BUTTON or <INPUT type="button">. In addition do/ wml:do can be used with the element go/ wml:go as a navigation button too. That element can perform also tasks, which in HTML have been defined to the LINK element (the value help). In WML 2.0 attributes for elements do have much changed, when it is added to WML as the element wml:do.

Other elements are for WMLScript tasks. The element timer is classified according to the WML 1.2 DTD-file, where it is among Card fields. The value is in units of one-tenth (1/10) of a second (also invoking a refresh task is considered an exit). The onevent /wml:onevent element can be replaced with a "shortcut" (abbreviated form).

These elements cause transformation problems between WML and XHTML.

Other notes: template, go
go (WML 1.2), prev (WML 1.2), refresh (WML 1.2), noop (WML 1.2), wml:go (WML 2.0), wml:prev (WML 2.0), wml:refresh (WML 2.0), wml:noop (WML 2.0)

These elements are primary designed to use with WMLScript. The element go in WML 1.2 is quite problematic, because it has partially the same task as the FORM element in HTML.

Some explanations of attributes and elements:
sendreferer = if this attribute is true, the user agent must specify, for the server's benefit, the URI of the deck containing this task (for example the referring deck). This allows a server to perform a form of access control on URIs, based on which decks are linking to them.
accept-charset = this attribute specifies the list of character encodings for data that the origin server must accept when processing input. The value of this attribute is a comma- or space-separated list of character encoding names (charset).
The refresh/ wml:refresh element declares a refresh task, indicating an update of the user agent context as specified by the setvar/ wml:setvar elements.
The noop/ wml:noop element is primary designed to shadow possible task. In WML 1.2 the task is commonly defined in the template element.

Other notes: template, fieldset, do.
input, label (WML 2.0), textarea (WML 2.0) They belong in the Modularization of XHTML to the Basic Forms Module.
postfield (WML 1.2), setvar (WML 1.2), wml:postfield (WML 2.0), wml:getvar (WML 2.0), wml:setvar (WML 2.0), wml:widget (WML 2.0)  

The usage of the INPUT, LABEL (WML 2.0) and TEXTAREA (WML 2.0) elements are in normal situations quite the same as in HTML. Special wml:widget element is added to WML 2.0.

The element postfield/ wml:postfield is in practise the same as <INPUT type="hidden">, but for some (unknown) reason, the designers of WML have created an own element for it. The element setvar/ wml:setvar and wml:getvar are another hidden elements, which are used with the WMLScript or with other possible scripting languages to set parameters. The reasonable usage of these elements needs scripting support.

The emptyok/ wml:emptyok attribute indicates that this input element accepts empty input although a non-empty format string has been specified.

Other notes: fieldset.
HTML notes: INPUT.
W3C: Basic Forms Module.
select, optgroup, option This set of elements belong in the Modularization of XHTML to the Forms Module.

The usage is quite the same as in HTML except it is possible to use the additional WML-elements and the element SELECT has some special WML-attributes.

The iname/ wml:iname attribute indicates the name of the variable to be set with the index result of the selection. The index result is the position of the currently selected option in the select list. An index of zero indicates that no option is selected. Index numbering begins at one and increases monotonically. In fact additional attributes could be usable also in XHTML.

Other notes: onevent.
W3C: Forms Module.
Copyrights Tapio Markula 1999-2001 (@dnainternet.net) - not into the public use without the permission (add to beginning of the e-mailaddress my name, Tapio Markula, separated with a comma).
Information about browsers, which render or print this site best.
Help pages has been last edited 09.09.2003

[Get Opera!] [Get Mozilla!]