Authors who design pages with accessibility issues in mind will not only receive the blessings of the
accessibility community, but will benefit in other ways as well: well-designed HTML documents that
distinguish structure and presentation will adapt more easily to new technologies. 
Note. For more information about designing accessible HTML documents, please consult [WAIGUIDE] 
[p.331] . 
2.3.3 Tables
The new table model in HTML is based on [RFC1942] [p.330] . Authors now have greater control over
structure and layout (e.g., column groups). The ability of designers to recommend column widths allows
user agents to display table data incrementally (as it arrives) rather than waiting for the entire table before
rendering. 
Note. At the time of writing, some HTML authoring tools rely extensively on tables for formatting, which
may easily cause accessibility problems. 
2.3.4 Compound documents
HTML now offers a standard mechanism for embedding generic media objects and applications in HTML
documents. The OBJECT element (together with its more specific ancestor elements IMG and APPLET)
provides a mechanism for including images, video, sound, mathematics, specialized applications, and
other objects in a document. It also allows authors to specify a hierarchy of alternate renderings for user
agents that don't support a specific rendering. 
2.3.5 Style sheets
Style sheets simplify HTML markup and largely relieve HTML of the responsibilities of presentation.
They give both authors and users control over the presentation of documents -- font information,
alignment, colors, etc. 
Style information can be specified for individual elements or groups of elements. Style information may
be specified in an HTML document or in external style sheets. 
The mechanisms for associating a style sheet with a document is independent of the style sheet language. 
Before the advent of style sheets, authors had limited control over rendering. HTML 3.2 included a
number of attributes and elements offering control over alignment, font size, and text color. Authors also
exploited tables and images as a means for laying out pages. The relatively long time it takes for users to
upgrade their browsers means that these features will continue to be used for some time. However, since
style sheets offer more powerful presentation mechanisms, the World Wide Web Consortium will
eventually phase out many of HTML's presentation elements and attributes. Throughout the specification
elements and attributes at risk are marked as "deprecated [p.34] ". They are accompanied by examples of
how to achieve the same effects with other elements or style sheets. 
21
2.3.3 Tables
.Pdf printing in thumbnail size - control software platform:C# PDF Thumbnail Create SDK: Draw thumbnail images for PDF in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support Thumbnail Generation with Various Options for Quick PDF Navigation
www.rasteredge.com
.Pdf printing in thumbnail size - control software platform:VB.NET PDF Thumbnail Create SDK: Draw thumbnail images for PDF in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support Thumbnail Generation with Various Options for Quick PDF Navigation
www.rasteredge.com
2.3.6 Scripting
Through scripts, authors may create dynamic Web pages (e.g., "smart forms" that react as users fill them
out) and use HTML as a means to build networked applications. 
The mechanisms provided to include scripts in an HTML document are independent of the scripting
language. 
2.3.7 Printing
Sometimes, authors will want to make it easy for users to print more than just the current document. When
documents form part of a larger work, the relationships between them can be described using the HTML 
LINK element or using W3C's Resource Description Language (RDF) (see [RDF] [p.330] ). 
2.4 Authoring documents with HTML 4.0
We recommend that authors and implementors observe the following general principles when working
with HTML 4.0. 
2.4.1 Separate structure and presentation
HTML has its roots in SGML which has always been a language for the specification of structural
markup. As HTML matures, more and more of its presentational elements and attributes are being
replaced by other mechanisms, in particular style sheets. Experience has shown that separating the
structure of a document from its presentational aspects reduces the cost of serving a wide range of
platforms, media, etc., and facilitates document revisions.
2.4.2 Consider universal accessibility to the Web
To make the Web more accessible to everyone, notably those with disabilities, authors should consider
how their documents may be rendered on a variety of platforms: speech-based browsers, braille-readers,
etc. We do not recommend that authors limit their creativity, only that they consider alternate renderings
in their design. HTML offers a number of mechanisms to this end (e.g., the alt attribute, the 
accesskey attribute, etc.) 
Furthermore, authors should keep in mind that their documents may be reaching a far-off audience with
different computer configurations. In order for documents to be interpreted correctly, authors should
include in their documents information about the natural language and direction of the text, how the
document is encoded, and other issues related to internationalization.
2.4.3 Help user agents with incremental rendering
By carefully designing their tables and making use of new table features in HTML 4.0, authors can help
user agents render documents more quickly. Authors can learn how to design tables for incremental
rendering (see the TABLE element). Implementors should consult the notes on tables [p.317] in the
appendix for information on incremental algorithms. 
22
2.4 Authoring documents with HTML 4.0
control software platform:Create Thumbnail Winforms | Online Tutorials
For information about saving & printing images in Create Thumbnail; Generate Barcodes on Your Documents; Read Processing; RasterEdge OCR Engine; PDF Reading; Encode
www.rasteredge.com
control software platform:VB.NET Image: Visual Basic .NET Guide to Draw Text on Image in .
can adjust the text font, font size, font type System.IO Imports System.Drawing.Printing Imports RasterEdge & profession imaging controls, PDF document, image
www.rasteredge.com
3 On SGML and HTML
Contents 
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
23
1.  Introduction to SGML 
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
24
2.  SGML constructs used in HTML 
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
24
1.  Elements 
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
25
2.  Attributes 
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
26
3.  Character references 
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
26
4.  Comments
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
27
3.  How to read the HTML DTD 
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
27
1.  DTD Comments 
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
27
2.  Parameter entity definitions 
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
28
3.  Element declarations 
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
28
Content model definitions
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
30
4.  Attribute declarations 
.
.
.
.
.
.
.
.
.
.
.
.
30
DTD entities in attribute definitions 
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
31
Boolean attributes
This section of the document introduces SGML and discusses its relationship to HTML. A complete
discussion of SGML is left to the standard (see [ISO8879] [p.327] ). 
3.1 Introduction to SGML
SGML is a system for defining markup languages. Authors mark up their documents by representing
structural, presentational, and semantic information alongside content. HTML is one example of a markup
language. Here is an example of an HTML document: 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
"http://www.w3.org/TR/REC-html40/strict.dtd">
<HTML>
<HEAD>
<TITLE>My first HTML document</TITLE>
</HEAD>
<BODY>
<P>Hello world!
</BODY>
</HTML>
An HTML document is divided into a head section (here, between <HEAD> and </HEAD>) and a body
(here, between <BODY> and </BODY>). The title of the document appears in the head (along with other
information about the document), and the content of the document appears in the body. The body in this
example contains just one paragraph, marked up with <P>. 
Each markup language defined in SGML is called an SGML application. An SGML application is
generally characterized by: 
23
3 On SGML and HTML
control software platform:XImage.Raster for .NET, Comprehensive .NET RasterImage SDK
resolution printing; More about Image Saving & Printing Create thumbnail directly in image. provide powerful & profession imaging controls, PDF document, image
www.rasteredge.com
control software platform:VB.NET Image: How to Create Visual Basic .NET Windows Image Viewer
image, rotating and flipping an image, printing & saving including png, jpeg, gif, tiff, bmp, PDF, and Word You can accurately define the size and location of
www.rasteredge.com
1.  An SGML declaration [p.249] . The SGML declaration specifies which characters and delimiters
may appear in the application. 
2.  A document type definition (DTD) [p.251] . The DTD defines the syntax of markup constructs. The
DTD may include additional definitions such as character entity references [p.26] . 
3.  A specification that describes the semantics to be ascribed to the markup. This specification also
imposes syntax restrictions that cannot be expressed within the DTD. 
4.  Document instances containing data (content) and markup. Each instance contains a reference to the
DTD to be used to interpret it.
The HTML 4.0 specification includes an SGML declaration [p.249] , three document type definitions (see
the section on HTML version information [p.53] for a description of the three), and a list of character 
references [p.26] . 
3.2 SGML constructs used in HTML
The following sections introduce SGML constructs that are used in HTML. 
The appendix lists some SGML features [p.313] that are not widely supported by HTML tools and user
agents and should be avoided. 
3.2.1 Elements
An SGML document type definition [p.251] declares element types that represent structures or desired
behavior. HTML includes element types that represent paragraphs, hypertext links, lists, tables, images,
etc. 
Each element type declaration generally describes three parts: a start tag, content, and an end tag. 
The element's name appears in the start tag (written <element-name>) and the end tag (written 
</element-name>); note the slash before the element name in the end tag. For example, the start and
end tags of the UL element type delimit the items in a list: 
<UL>
<LI><P>
...list item 1...
<LI><P>
...list item 2...
</UL>
Some HTML element types allow authors to omit end tags (e.g., the P and LI element types). A few
element types also allow the start tags to be omitted; for example, HEAD and BODY. The HTML DTD
indicates for each element type whether the start tag and end tag are required. 
Some HTML element types have no content. For example, the line break element BR has no content; its
only role is to terminate a line of text. Such empty elements never have end tags. The document type 
definition [p.251] and the text of the specification indicate whether an element type is empty (has no
content) or, if it can have content, what is considered legal content. 
24
3.2 SGML constructs used in HTML
control software platform:VB.NET Image: How to Draw Annotation on Doc Images with Image SDK
and bmp) or documents (like multi-page TIFF, Microsoft Office Word and PDF file You can freely control the annotation shapes, the outline size (width and height
www.rasteredge.com
control software platform:VB.NET Image: VB.NET Code to Create Watermark on Images in .NET
font type "Times New Roman", size "16", and style System.IO Imports System.Drawing. Printing Imports RasterEdge & profession imaging controls, PDF document, tiff
www.rasteredge.com
Element names are always case-insensitive. 
Please consult the SGML standard for information about rules governing elements (e.g., they must be
properly nested, an end tag closes all omitted start tags up to the matching start tag (section 7.5.1), etc.). 
For example, the following paragraph: 
<P>This is the first paragraph.</P>
...a block element...
may be rewritten without its end tag:
<P>This is the first paragraph.
...a block element...
since the <P> start tag is closed by the following block element. Similarly, if a paragraph is enclosed by a
block element, as in:
<DIV>
<P>This is the paragraph.
</DIV>
the end tag of the enclosing block element (here, </DIV>) implies the end tag of the open <P> start tag. 
Elements are not tags. Some people refer to elements as tags (e.g., "the P tag"). Remember that the
element is one thing, and the tag (be it start or end tag) is another. For instance, the HEAD element is
always present, even though both start and end HEAD tags may be missing in the markup. 
All the element types declared in this specification are listed in the element index [p.333] . 
3.2.2 Attributes
Elements may have associated properties, called attributes, which may have values (by default, or set by
authors or scripts). Attribute/value pairs appear before the final ">" of an element's start tag. Any number
of (legal) attribute value pairs, separated by spaces, may appear in an element's start tag. They may appear
in any order.
In this example, the id attribute is set for an H1 element: 
<H1 id="section1">
This is an identified heading thanks to the id attribute
</H1>
By default, SGML requires that all attribute values be delimited using either double quotation marks
(ASCII decimal 34) or single quotation marks (ASCII decimal 39). Single quote marks can be included
within the attribute value when the value is delimited by double quote marks, and vice versa. Authors may
also use numeric character references [p.26] to represent double quotes (&#34;) and single quotes
(&#39;). For double quotes authors can also use the character entity reference [p.26] &quot;. 
25
3.2.2 Attributes
control software platform:C# Image: How to Draw Text on Images within Rasteredge .NET Image
such as adjusting text font size, color, style and System.IO; using System.Drawing. Printing; using RasterEdge & profession imaging controls, PDF document, tiff
www.rasteredge.com
control software platform:VB.NET Image: How to Create New Images Using VB.NET Codes in .NET
the complete VB.NET sample codes for printing a high settings like image color and size according to powerful & profession imaging controls, PDF document, tiff
www.rasteredge.com
In certain cases, authors may specify the value of an attribute without any quotation marks. The attribute
value may only contain letters (a-z and A-Z), digits (0-9), hyphens (ASCII decimal 45), and periods
(ASCII decimal 46). We recommend using quotation marks even when it is possible to eliminate them. 
Attribute names are always case-insensitive 
Attribute values are generally case-insensitive. The definition of each attribute in the reference manual
indicates whether its value is case-insensitive.
All the attributes defined by this specification are listed in the attribute index [p.337] . 
3.2.3 Character references
Character references are numeric or symbolic names for characters that may be included in an HTML
document. They are useful for referring to rarely used characters, or those that authoring tools make it
difficult or impossible to enter. You will see character references throughout this document; they begin
with a "&" sign and end with a semi-colon (;). Some common examples include: 
"&lt;" represents the < sign. 
"&gt;" represents the > sign. 
"&quot;" represents the " mark. 
"&#229;" (in decimal) represents the letter "a" with a small circle above it. 
"&#1048;" (in decimal) represents the Cyrillic capital letter "I". 
"&#x6C34;" (in hexadecimal) represents the Chinese character for water.
We discuss HTML character references [p.40] in detail later in the section on the HTML document
character set [p.37] . The specification also contains a list of character references [p.289] that may appear
in HTML 4.0 documents. 
3.2.4 Comments
HTML comments have the following syntax: 
<!-- this is a comment -->
<!-- and so is this one,
which occupies more than one line -->
White space is not permitted between the markup declaration open delimiter("<!") and the comment open
delimiter ("--"), but is permitted between the comment close delimiter ("--") and the markup declaration
close delimiter (">"). A common error is to include a string of hyphens ("---") within a comment. Authors
should avoid putting two or more adjacent hyphens inside comments. 
Information that appears between comments has no special meaning (e.g., character references [p.26] are
not interpreted as such). 
26
3.2.3 Character references
control software platform:VB.NET Image: Web Image and Document Viewer Creation & Design
document pages with zero footprint and thumbnail preview support Basic project is capable of printing current image toolkit to print bitonal images, PDF, and so
www.rasteredge.com
control software platform:VB.NET Image: Compress & Decompress Document Image; RasterEdge .
System.IO Imports System.Drawing.Printing Imports RasterEdge decompressing: reduce Word document size according to Scanned PDF encoding and decoding: compress a
www.rasteredge.com
3.3 How to read the HTML DTD
Each element and attribute declaration in this specification is accompanied by its document type definition 
[p.251] fragment. We have chosen to include the DTD fragments in the specification rather than seek a
more approachable, but longer and less precise means of describing an element's properties. The
following tutorial should allow readers unfamiliar with SGML to read the DTD and understand the
technical details of the HTML specification. 
3.3.1 DTD Comments
In DTDs, comments may spread over one or more lines. In the DTD, comments are delimited by a pair of
"--" marks, e.g. 
<!ELEMENT PARAM - O EMPTY       -- named property value -->
Here, the comment "named property value" explains the use of the PARAM element type. Comments in the
DTD are informative only. 
3.3.2 Parameter entity definitions
The HTML DTD [p.251] begins with a series of parameter entity definitions. A parameter entity 
definition defines a kind of macro that may be referenced and expanded elsewhere in the DTD. These
macros may not appear in HTML documents, only in the DTD. Other types of macros, called character 
references [p.26] , may be used in the text of an HTML document or within attribute values. 
When the parameter entity is referred to by name in the DTD, it is expanded into a string. 
A parameter entity definition begins with the keyword <!ENTITY % followed by the entity name, the
quoted string the entity expands to, and finally a closing >. Instances of parameter entities in a DTD begin
with "%", then the parameter entity name, and terminated by an optional ";". 
The following example defines the string that the "%fontstyle;" entity will expand to. 
<!ENTITY % fontstyle "TT | I | B | BIG | SMALL">
The string the parameter entity expands to may contain other parameter entity names. These names are
expanded recursively. In the following example, the "%inline;" parameter entity is defined to include the
"%fontstyle;", "%phrase;", "%special;" and "%formctrl;" parameter entities. 
<!ENTITY % inline "#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;">
You will encounter two DTD entities frequently in the HTML DTD [p.251] : "%block;" "%inline;". They
are used when the content model includes block-level and inline elements [p.66] , respectively (defined in
the section on the global structure of an HTML document [p.53] ). 
27
3.3 How to read the HTML DTD
3.3.3 Element declarations
The bulk of the HTML DTD consists of the declarations of element types and their attributes. The
<!ELEMENT keyword begins a declaration and the > character ends it. Between these are specified: 
1.  The element's name. 
2.  Whether the element's end tag is optional. Two hyphens that appear after the element name mean
that the start and end tags are mandatory. One hyphen followed by the letter "O" indicates that the
end tag can be omitted. A pair of letter "O"s indicate that both the start and end tags can be omitted. 
3.  The element's content, if any. The allowed content for an element is called its content model.
Element types that are designed to have no content are called empty elements. The content model for
such element types is declared using the keyword "EMPTY".
In this example: 
<!ELEMENT UL - - (LI)+>
The element type being declared is UL
The two hyphens indicate that both the start tag <UL> and the end tag </UL> for this element type
are required. 
The content model for this element type is declared to be "at least one LI element". Below, we
explain how to specify content models.
This example illustrates the declaration of an empty element type: 
<!ELEMENT IMG - O EMPTY>
The element type being declared is IMG . 
The hyphen and the following "O" indicate that the end tag can be omitted, but together with the
content model "EMPTY", this is strengthened to the rule that the end tag must be omitted. 
The "EMPTY" keyword means that instances of this type must not have content.
Content model definitions 
The content model describes what may be contained by an instance of an element type. Content model
definitions may include: 
The names of allowed or forbidden element types (e.g., the UL element contains instances of the LI
element type, and the P element type may not contain other P elements). 
DTD entities (e.g., the LABEL element contains instances of the "%inline;" parameter entity). 
Document text (indicated by the SGML construct "#PCDATA"). Text may contain character 
references [p.40] . Recall that these begin with & and end with a semicolon (e.g., "Herg&eacute;'s
adventures of Tintin" contains the character entity reference for the "e acute" character).
The content model of an element is specified with the following syntax: 
28
3.3.3 Element declarations
( ... ) 
Delimits a group. 
A | B 
Either A or B occurs, but not both. 
A , B 
Both A and B occur, in that order. 
A & B 
Both A and B occur, in any order. 
A? 
A occurs zero or one time. 
A* 
A occurs zero or more times. 
A+ 
A occurs one or more times.
Here are some examples from the HTML DTD: 
<!ELEMENT UL - - (LI)+>
The UL element must contain one or more LI elements.
<!ELEMENT DL    - - (DT|DD)+>
The DL element must contain one or more DT or DD elements in any order.
<!ELEMENT OPTION - O (#PCDATA)>
The OPTION element may only contain text and entities, such as &amp; -- this is indicated by the SGML
data type #PCDATA.
A few HTML element types use an additional SGML feature to exclude elements from their content
model. Excluded elements are preceded by a hyphen. Explicit exclusions override permitted elements. 
In this example, the -(A) signifies that the element A cannot appear in another A element (i.e., anchors
may not be nested). 
<!ELEMENT A - - (%inline;)* -(A)>
Note that the A element type is part of the DTD parameter entity "%inline;", but is excluded explicitly
because of -(A). 
Similarly, the following element type declaration for FORM prohibits nested forms: 
<!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM)>
29
3.3.3 Element declarations
3.3.4 Attribute declarations
The <!ATTLIST keyword begins the declaration of attributes that an element may take. It is followed by
the name of the element in question, a list of attribute definitions, and a closing >. Each attribute definition
is a triplet that defines: 
The name of an attribute. 
The type of the attribute's value or an explicit set of possible values. Values defined explicitly by the
DTD are case-insensitive. Please consult the section on basic HTML data types [p.43] for more
information about attribute value types. 
Whether the default value of the attribute is implicit (keyword "#IMPLIED"), in which case the
default value must be supplied by the user agent (in some cases via inheritance from parent
elements); always required (keyword "#REQUIRED"); or fixed to the given value (keyword
"#FIXED"). Some attribute definitions explicitly specify a default value for the attribute.
In this example, the name attribute is defined for the MAP element. The attribute is optional for this
element. 
<!ATTLIST MAP
name        CDATA     #IMPLIED
>
The type of values permitted for the attribute is given as CDATA, an SGML data type. CDATA is text
that may contain character references [p.40] . 
For more information about "CDATA", "NAME", "ID", and other data types, please consult the section
on HTML data types [p.43] . 
The following examples illustrate several attribute definitions: 
rowspan     NUMBER     1         -- number of rows spanned by cell --
http-equiv  NAME       #IMPLIED  -- HTTP response header name  --
id          ID         #IMPLIED  -- document-wide unique id -- 
valign      (top|middle|bottom|baseline) #IMPLIED
The rowspan attribute requires values of type NUMBER. The default value is given explicitly as "1".
The optional http-equiv attribute requires values of type NAME. The optional id attribute requires
values of type ID. The optional valign attribute is constrained to take values from the set {top, middle,
bottom, baseline}. 
DTD entities in attribute definitions 
Attribute definitions may also contain parameter entity references. 
In this example, we see that the attribute definition list for the LINK element begins with the "%attrs;"
parameter entity. 
30
3.3.4 Attribute declarations
Documents you may be interested
Documents you may be interested