This page tests AWeb's compatibility with the HTML 4.0 standard (W3C Recommendation, December 1997). Each section demonstrates supported features and clearly marks incompatibilities or limitations based on the AWeb documentation.
|
Test: This is normal text. This text was inserted and should appear in red with underline. This is normal text. Example of both: This sentence has inserted text and |
What it tests: The PRE element should preserve whitespace and maintain column alignment even when HTML tags (like links) appear inside the preformatted content. This is critical for displaying formatted text like file listings, code examples, or tabular data with embedded links.
How to run: View this page - the columns in the PRE block below should be properly aligned, with the links maintaining the same column positions as if they were plain text.
Expected results: All columns should align vertically. The filename, category, size, and description columns should line up correctly, even though HTML <A> tags are embedded in the content. Spaces between elements should be preserved as non-breaking spaces to maintain alignment.
Test:file1.lha comm/misc 1.9M OS4 Direct file transfer vi... file21.lha comm/net 352K OS3 get https files for the... file231.lha comm/net 4325K OS3 SSH2 suite, client/serv... file3421.lha dev/c 925K OS3 Open source video game ... file24321.lha dev/misc 8.42M OS3 Game Creator with AGA s... Note: The columns should align perfectly. If the alignment is broken, it indicates that whitespace normalization in PRE blocks is not working correctly. The spaces between the links should be preserved as non-breaking spaces (0xA0) to maintain column alignment. |
This document uses HTML 4.01 Transitional DOCTYPE.
The STYLE element is supported in the HEAD, though CSS rendering capabilities are limited.
Frames require a separate frameset document. Here's an example structure:
<FRAMESET COLS="25%,75%">
<FRAME SRC="nav.html" NAME="navigation" FRAMEBORDER="1" SCROLLING="yes">
<FRAME SRC="content.html" NAME="main" FRAMEBORDER="1" SCROLLING="auto">
<NOFRAMES>
<BODY>Your browser does not support frames.</BODY>
</NOFRAMES>
</FRAMESET>
What you should see: An inline frame displaying the specified document. If frames are not supported, the fallback text should appear.
|
Test: |
What you should see: A table with THEAD, TBODY, and TFOOT sections demonstrating HTML 4.0 table structure.
Test:
|
What you should see: A table with COLGROUP and COL elements defining column properties.
Test:
|
What you should see: Tables with background images that are properly aligned relative to their containing elements (table, row, or cell) rather than the document origin. Background images should tile correctly within each element's boundaries. This demonstrates the bgalign mechanism that ensures proper background image positioning in table layouts.
|
Test: Table with background image: The background image should be aligned to the table itself and tile within the table boundaries.
Table with row background image: The background image should be aligned to each row and tile within the row boundaries.
Table with cell background images: Each cell's background image should be aligned to that specific cell and tile within the cell boundaries.
Note: The bgalign mechanism ensures that background images are correctly positioned relative to their containing element (table, row, or cell), not the document origin. This is especially important for nested tables, scrolling, and proper background image tiling. |
What it tests: FORM element with TARGET attribute to submit form results to a specific frame or window.
How to run: Fill out the form below and click Submit. The result should open in a new window or the specified target frame.
Expected results: The form should submit to test.cgi and display results in a new window (TARGET="_blank") or the specified frame.
|
Test: |
What it tests: FORM element with NAME attribute for JavaScript access.
How to run: This form has a NAME attribute that allows JavaScript to access it via document.forms['namedform'].
Expected results: The form should be accessible via JavaScript using document.forms['namedform'] or document.forms[0].
|
Test: |
What it tests: BUTTON element with TYPE="submit", TYPE="reset", and TYPE="button" attributes. This is an HTML 4.0 feature that provides more flexibility than INPUT buttons.
How to run: Click each button below to test their functionality.
Expected results: Submit button should submit the form. Reset button should clear form fields. Button element should trigger any ONCLICK handler but not submit the form.
|
Test: |
What it tests: All supported INPUT types: text, password, hidden, checkbox, radio, submit, reset, button, and file.
How to run: Interact with each input type below. Try typing in text fields, selecting checkboxes/radios, clicking buttons, and selecting a file.
Expected results: All input types should display and function correctly. Text fields should accept input, checkboxes/radios should toggle, buttons should work, and file input should open a file requester.
|
Test: |
What it tests: SELECT element with SIZE attribute to control whether it displays as a dropdown (SIZE=1 or omitted) or a list box (SIZE>1).
How to run: Compare the two select elements below - one is a dropdown, the other is a list box.
Expected results: The first SELECT should display as a dropdown menu. The second SELECT with SIZE="3" should display as a list box showing 3 options at once.
|
Test: |
What it tests: SELECT element with MULTIPLE attribute for selecting multiple options simultaneously.
How to run: Hold Ctrl (or Cmd on Mac) and click multiple options in the list below.
Expected results: You should be able to select multiple options by holding Ctrl/Cmd while clicking. Selected options should be highlighted.
|
Test: |
What it tests: TEXTAREA element with ROWS and COLS attributes to control the visible size of the text area.
How to run: Type multiple lines of text in the textarea below. Try pressing Enter to create new lines.
Expected results: The textarea should display with the specified number of rows and columns. It should be scrollable if content exceeds the visible area. Line breaks should be preserved.
|
Test: |
What it tests: A complete HTML 4.0 form with all supported elements and attributes working together, including FORM TARGET, NAME, BUTTON elements, and all input types.
How to run: Fill out all fields in the comprehensive form below, then test Submit, Reset, and Button elements.
Expected results: All form elements should work correctly. Submit should send all form data. Reset should clear all fields. The form demonstrates all HTML 4.0 form capabilities supported by AWeb.
|
Test: |
What you should see: An OBJECT element with PARAM elements. If the object type is not supported, the fallback text should appear.
|
Test: |
What you should see: An EMBED element. Note: This requires tolerant mode (Netscape extension).
|
Test: |
What it tests: data: URL scheme allows embedding image data directly in HTML using base64 encoding or URL encoding. This eliminates the need for separate image files.
How to run: View this page - the images below should display correctly using data: URLs.
Expected results: All images should display correctly. The data: URLs should be parsed and the embedded image data should be rendered.
|
Test: Base64 encoded PNG image (example 1): |
What it tests: data: URLs should work in various HTML attributes that accept URLs, such as SRC and BACKGROUND.
How to run: View this page and check that data: URLs work in different contexts.
Expected results: Data URLs should be recognized and processed correctly in IMG SRC, TABLE BACKGROUND, and other URL-accepting attributes. Note: data: URLs cannot be opened in new windows as they only exist within the document context.
|
Test: Table with data: URL background:
|
What it tests: cid: URL scheme allows referencing embedded content by Content-ID in multipart MIME messages. This is commonly used in email HTML where images and other resources are embedded as MIME parts.
How to run: Click the link below to open a multipart MIME test file. The cid: URLs in that file will reference embedded MIME parts with matching Content-ID headers.
Expected results: When you open the MIME test file, all cid: URLs should be recognized and resolved to the corresponding MIME parts. Images and background images should display correctly.
|
Test: Open multipart MIME test file: What the test file contains:
Note: cid: URLs only work within multipart MIME documents. They cannot be used in regular HTML files. The test file above is a proper multipart MIME document that demonstrates cid: URL functionality. |
What it tests: data: URLs support various MIME types. This test demonstrates different content types embedded via data: URLs.
How to run: View this page - different content types should be handled correctly.
Expected results: Each data: URL should be parsed correctly based on its MIME type, and the content should be displayed or processed appropriately. Note: data: URLs cannot be opened in new windows as they only exist within the document context.
|
Test: SVG image data: URL (if supported): Note: data: URLs work for inline content (like images in IMG tags), but cannot be used in links to open new windows since the data only exists within the current document context. |
What it tests: In multipart MIME messages (like HTML email), cid: URLs reference embedded parts, and data: URLs can be used as fallbacks or for inline content. This test demonstrates the integration of both schemes.
How to run: This test shows how cid: and data: URLs can work together. The cid: URLs will work in the MIME test file, while data: URLs work in regular HTML.
Expected results: Both URL schemes should be recognized and processed correctly. cid: URLs should resolve to MIME parts (see cid_test.mime), and data: URLs should embed content directly in regular HTML documents.
|
Test: This demonstrates how both URL schemes work:
Note: In a real multipart MIME message (like HTML email), cid: URLs resolve to MIME parts with matching Content-ID headers. data: URLs embed content directly and work in any HTML context, but cannot be opened in new windows. |
This paragraph would use inline STYLE attribute, but CSS support is limited in AWeb.
What you should see: Text colors using both hex values and CSS color names. Each pair should show the same color.
|
Test: Hex: This text should be red (#ff0000). Name: This text should be red (color name). Hex: This text should be blue (#0000ff). Name: This text should be blue (color name). Hex: This text should be green (#008000). Name: This text should be green (color name). Hex: This text should be black (#000000). Name: This text should be black (color name). Hex: This text should be brown (#A52A2A). Name: This text should be brown (color name). |
What you should see: Background colors using both hex values and CSS color names. Each pair should show the same background color.
|
Test: Hex: This paragraph should have a light red background with red text (swatch). Name: This paragraph should have a light red background with red text (color name). Hex: This paragraph should have a light blue background with blue text (swatch). Name: This paragraph should have a light blue background with blue text (color name). Hex: This paragraph should have a light green background with green text (swatch). Name: This paragraph should have a light green background with green text (color name). |
<!-- ... -->)HTML 4.01 (SGML) comments may span newlines; nothing between the markers below may be laid out or tokenised as markup. If you see a heading COMMENT_LEAK_HEADING
or a button labelled COMMENT_LEAK_BUTTON
, the parser is closing the comment too early (historically: first > on the next line).
VISIBLE_BEFORE_COMMENT
VISIBLE_AFTER_COMMENT
|
Test: |
|
Test: |
For comprehensive JavaScript 1.1 testing, see javascript_test.html.
AWeb now supports XHTML (eXtensible HyperText Markup Language), which is HTML reformulated as XML.
<?xml ...?> declarations<br />, <img />, <hr /> syntax<![CDATA[...]]> for embedding unparsed contentWhat it tests: XHTML self-closing tag syntax where empty elements must be closed with />.
How to run: View this page - the self-closing tags below should render correctly.
Expected results: All self-closing tags should display properly. Line breaks, horizontal rules, and images should render correctly.
|
Test: This paragraph contains a self-closing line break: This paragraph contains a self-closing horizontal rule: After the rule. Self-closing image tag (if image exists): |
What it tests: CDATA sections allow embedding content that contains characters like < and & without them being parsed as markup.
How to run: View this page - the CDATA content below should appear as literal text.
Expected results: The content inside CDATA should appear as plain text, with HTML tags visible as text rather than being parsed.
|
Test: CDATA content example: and & entities without being parsed. The browser should display this as literal text. ]]> After CDATA section. |
What it tests: CDATA sections are commonly used in XHTML script tags to avoid parsing issues with < and & characters in JavaScript.
How to run: View the page source or check if JavaScript executes correctly.
Expected results: The JavaScript should execute correctly, and CDATA content should be handled properly.
|
Test: |
What it tests: AWeb automatically detects XHTML documents via DOCTYPE or XML declaration and applies strict parsing mode.
How to run: This test requires viewing an actual XHTML document. Create a file with XHTML DOCTYPE to test.
Expected results: Documents with XHTML DOCTYPEs should be automatically detected and parsed in strict mode.
Example XHTML DOCTYPE:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Example XML declaration:
<?xml version="1.0" encoding="UTF-8"?>
These examples violate nesting rules or use nonsense attribute values. The browser must not trap/crash; recovery behavior may vary.
What it tests: Overlapping instead of proper inner nesting (<B><I></B></I>).
Expected: Page remains responsive; text below still renders.
|
Test: Bold-open italic-open after premature /B before /I This paragraph must appear after the malformed nesting. |
Note: MARQUEE is non-standard; invalid BEHAVIOR tests attribute parsing tolerance similar to MQ15.
|
Test: |
This page tests HTML 4.0 specifically. For HTML 3.2 features, see html3_test.html.
Last Updated: 2026 - AWeb 3 HTML 4.0 Compatibility Test