Using a Custom Doctype

You can specify a different “doctype” (document type, or DTD) for a Visualforce page by using the docType attribute on the <apex:page> tag. This changes the doctype declaration at the beginning of the page. This is particularly useful if you’re working with HTML5, and might also allow you to address browser compatibility issues.

By default, Visualforce pages are served with a doctype of HTML 4.01 Transitional. Specifically, pages begin with this doctype declaration:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

You can specify a different doctype for a Visualforce page by using the docType attribute on the <apex:page> tag.

The docType attribute takes a string representing the document type. The format of the string is:

<doctype>-<version>[-<variant>]

where

  • doctype is either html or xhtml
  • version is a decimal version number valid for the doctype
  • variant, if included, is:
    • strict, transitional, or frameset for all html document types and the xhmtl-1.0 document type, or
    • <blank> or basic for the xhmtl-1.1 document type

If an invalid document type is specified, the default doctype is used. For more information about valid HTML doctypes, see the list at the W3C website.

Note

Note

In API 28.0 and greater, the scope of how the docType is determined for a page depends on the entire page hierarchy, not just the main page. When pages are added to the main page using the <apex:include> tag, if any page in the hierarchy is set to docType="html-5.0", the entire page hierarchy is rendered in that mode.

Custom Doctype Example

To create a Visualforce page with an XHTML 1.0 Strict document type, use the docType attribute on the <apex:page> tag, and specify a value of xhtml-1.0-strict:

<apex:page docType="xhtml-1.0-strict" title="Strictly XHTML" 
    showHeader="false" sidebar="false">
    <h1>This is Strict XHTML!</h1>
    <p>
        Remember to close your tags correctly:<br/>
        <apex:image url="/img/icon-person.gif" alt="Person icon"/>
    </p>
</apex:page>
Note

Note

Visualforce doesn’t alter markup generated by components to match the doctype, nor the markup for standard Salesforce elements such as the header and sidebar. Salesforce elements are valid for most doctypes and function properly with any doctype, but if you choose a strict doctype and wish to pass an HTML validation test, you might need to suppress or replace the standard Salesforce elements.

Previous
Next