Future Media Standards & Guidelines

XHTML Integrity Standards v1.2 (superseded)

1. Introduction

1.1. Principles of this Standard

1.1.1. This document defines the XHTML standards to which you MUST adhere when coding XHTML-based BBC sites.

1.2. Audience

1.2.1. You should read and adhere to this standard if you are an internal or third-party web designer coding a BBC site using XHTML.

Top of page

2. When To Use XHTML

2.1. You MUST use XHTML when coding BBC sites, UNLESS you are maintaining sites that use HTML and/or Barley Restricted access - Post-NDA only, or creating sites using an HTML-based CMS.

Top of page

3. Doctype and Validation

3.1. A Doctype MUST be included, and the Doctype used MUST be as follows:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

3.2. The page MUST validate against this doctype using the W3C validator.

3.3. You MUST put the DTD on the first line of the document, to enable standards mode reliably.

3.4. You MUST specify the following xml namespace for the document in the html:

xmlns="http://www.w3.org/1999/xhtml"

Top of page

4. Accessibility

4.1. The BBC has statutory obligations, in terms of the Disability Discrimination Act (DDA), to produce accessible content. For details of this see the Accessibility Standards.

4.2. You MUST NOT provide core content or services via associated technologies (for example, Javascript or Flash) without providing an alternative for browsers/configurations which do not sufficiently support these technologies.

4.2.1. Due to accessibility concerns, you MUST NOT use sIFRs on bbc.co.uk without first discussing this with the Editor, Standards and Guidelines.

Top of page

5. Browser Support

5.1. The BBC supports certain browsers, as listed in the Browser Support Standards.

5.2. Character sets and supported languages

5.2.1. You MUST have one, and only one, character set for the document.

5.2.2. When specifying the character set of the document, you MUST use UTF-8.

5.2.2.1. You should be cautious that some legacy systems have outputs that are not UTF-8 which can cause conflicts. In this case the feed MUST be converted.

5.2.2.2. All new publishing systems MUST output as UTF-8.

5.2.3. You MUST set the character set and mime-type in the head of the document like so :

<meta http-equiv="Content-type" content="text/html; charset=utf-8" />

5.2.4. You MUST serve the file from the server with UTF-8 encoding.

5.2.5. You MUST NOT specify an xml prolog; that is, <?xml ...?>.

N.B. The html file will be served as text/html.

5.2.6. You MUST specify the base language of the page in the html tag using both lang and xml:lang attributes; for example:

lang="en-GB" xml:lang="en-GB"

5.2.6.1. Please refer to this reference on language codes as defined under ISO 639.

Top of page

6. Code Style

6.1. Code which is produced and maintained by content production systems SHOULD be as compact and comment-free as possible, to minimise file size and download times (see the Download Standards).

6.2. If this is done, a readable version of the pre-published code SHOULD be available for maintenance purposes.

6.3. Code which is manually produced and maintained SHOULD be well laid out to ensure readability. Reasonable use of blank lines, indenting and comments to denote different sections of the page is encouraged. However, their use SHOULD be balanced with the same file size considerations as set out in section 6.1. above.

6.4. XHTML unary tags MUST include a space before the trailing slash to allow for backward compatibility and legibility, UNLESS they are generated by an XSLT processor that cannot be configured accordingly.

6.5. You MUST NOT use <blink> or <marquee> tags. This is due to accessibility and browser support issues.

6.6. For more details on XHTML refer to the following website: w3c.org/XHTML 1.0 The Extensible Hypertext Mark-up Language.

6.7. Separation of style from content

6.7.1. You MUST comply with the Semantic Mark-up Standard.

6.7.2. Content MUST be separated from presentation (which is delivered in CSS) and behaviour (which is delivered using Javascript).

6.7.3. You MUST NOT deliver presentation with tables UNLESS the data is tabular.

Top of page

7. Appearance of bbc.co.uk Pages

7.1. All pages using this standard MUST comply with the bbc.co.uk Visual Language Standards.

7.2. All pages MUST include the BBC brand, BBC copyright and privacy information.

Top of page

8. CSS

8.1. You MUST obey the CSS Standard.

8.2. HTML pages MUST be readable without style sheets; that is, if style sheets have been turned off in the browser.

8.3. You MUST NOT use !important as this prevents users overriding the style implied.

8.4. The font face MUST offer a generic font family as a last alternative that is available on all partially-supported browsers; for example, sans-serif.

8.5. Fonts MUST be easily resizable in all supported browsers.

8.6. Pages MUST be readable when the font size is increased by two steps in our supported browsers.

Top of page

9. Images

9.1. All images used in <img> tags MUST be in either GIF, JPEG or PNG format, with the following proviso:

9.1.1. PNG files MAY be used, but MUST degrade gracefully, in line with the Browser Support Standards, and still allow for the core content of the site to be conveyed.

9.1.2. You SHOULD be cautious particularly when using PNG files with alpha transparency. Known issues at present include, but are not limited to, transparency with IE6.

9.2. When using an img tag you MUST specify the height and width attributes.

9.3. You MUST NOT use height and width attributes to rescale images to provide thumbnail versions of the full image. Instead you MUST use a separate, resized image file.

9.4. Alternative text MUST be supplied as defined in the Textual Equivalents (Accessibility) Standards.

9.5. You MUST NOT use images referenced in CSS or JavaScript for core content where alternative content is not supplied. This is because absence of alt attributes makes these images inaccessible.

9.6. You MUST NOT use transparent spacer GIFs (that is, for layout purposes).

Top of page

10. Imagemaps

10.1. You MUST NOT use server-side imagemaps, as they are not accessible.

10.2. When using client-side imagemaps, you SHOULD use rectangular and circle definitions rather than poly-definitions, to minimise code size.

Top of page

11. Code Comments

11.1. You MUST NOT have any comments in your code which endorse any company or individual UNLESS there is a copyright issue that requires it.

11.2. For internal systems you SHOULD highlight the location of support documentation.

11.3. You MUST NOT have any comments in your code which include more than two concurrent 'x' characters. Applications that restrict content containing 3 concurrent 'x' characters may believe your page contains adult content, and deny access accordingly.

Top of page

12. Page Colours

12.1. A full default set of definitions for colours (equivalents of text, link, alink, vlink and bgcolor in html) MUST be specified in the page's CSS style-sheet.

12.2. All colour changes or background images within a document MUST be specified using CSS to enable graceful degradation.

12.3. You MUST always define a page background colour in your CSS, even if it is white.

12.4. Please also refer to the Use of Colour and Colour Contrast Standard.

Top of page

13. Pop-ups

13.1. bbc.co.uk sites MAY occasionally require a pop-up window to present content or a feature, such as broadband consoles, a radio player, or News AV.

13.2. Pop-ups MUST NOT open unannounced; for example, automatically on page load without being a direct result of user input.

13.3. Pop-ups MUST only open when a user has clicked a hypertext link.

13.4. You MUST NOT allow multiple pop-up windows to open from a single click.

13.5. You MUST clearly label links which launch pop-ups so that our audience know they are launching a pop-up.

13.6. You MUST give the pop-up focus when it launches. This must be specified in the code that launches the pop-up (not in an onload in the pop-up).

13.7. Pop-up windows SHOULD NOT have an initial size of more than 760 x 560 pixels, and MUST NOT have an initial size of more than 900 x 680 pixels.

13.8. Above 760 x 560 pixels, windows MUST NOT disable scrollbars.

13.9. Pop-up windows MUST be resizable by the user.

13.10. Pop-up windows MUST contain the BBC logo, the Privacy & Cookies policy link and the Terms of use link.

13.11. You SHOULD identify whether or not your pop-up is able to be indexed by web search agents. This is an editorial decision.

13.12. You MUST NOT allow pop-ups to be searched UNLESS they are "standalone" and do not require instructions for use on the page from which they are normally opened; for example, "This content requires the Flash plug-in...".

13.13. If your pop-up is searchable, you MUST include a "Go back to associated bbc.co.uk page" (or similar) link outside the viewable area of the pop-up.

Top of page

14. Google Maps

14.1. If you wish to use Google Maps on your site, you MUST contact the Editor, Standards and Guidelines for advice on how you should do this.

Top of page

15. Script Functionality (JavaScript, CGI, mod_perl)

15.1. Wherever possible, use the common BBC scripts that are provided for common tasks such as rollovers, plug-in detection, etc. A list of locations where you can find these scripts is available at BBC Site Tools [Internal BBC document Internal BBC document - gain access via your Technical Account Manager] and the BBC CGI Toolbox [Internal BBC document Internal BBC document - gain access via your Technical Account Manager].

15.2. For applications that process personal data you MUST adhere to the requirements of the Technical Implementation of the Data Protection Act (DPA).

Top of page

16. Files and Directories

16.1. All file and directory names (including file extensions) MUST be in lowercase and SHOULD NOT be overly long.

16.2. Non-alphanumeric characters MUST NOT be used in filenames, except for underscores, which MAY be used to separate words.

16.3. Underscores MUST NOT be used in top-level directory names and SHOULD NOT be used in other directory names. Top-level directory names are used to market bbc.co.uk sites and are advertised on Ceefax, which cannot display underscores.

16.4. Files MUST obey the File Extensions Standards.

16.5. Top-level directory names MUST follow the URL Requirements Standard.

16.6. Directories MUST NOT contain more than 1000 files or folders. If you have more than this, create sub-directories.

16.7. The total weight of all code and called assets within a page SHOULD be as small as possible and you SHOULD have as few objects as possible (for example, images) called to a page to minimise download time.

16.8. Any files over 500k MUST be served from downloads.bbc.co.uk, unless they are Real or Windows Media files. For serving of Real and Windows Media files refer to the Audio Video Standards.

Top of page

17. Enabling User Feedback and Customised Feedback Pages

17.1. As part of the BBC's service to its audiences, bbc.co.uk MUST provide facilities for those users to ask questions and provide feedback to the sites' producers.

17.2. Customised feedback pages MUST be made for each site with a top-level directory (or redirect).

Top of page

18. 404s and Other Errors

18.1. You MUST NOT cause/allow 404 errors to appear on bbc.co.uk.

18.2. You MUST NOT cause/allow server-side include (SSI) errors to appear on bbc.co.uk.

18.3. You MUST NOT disguise/hide SSI errors, using the config errmsg control.

18.4. You MUST NOT cause SSI errors by design as a function of your site.

18.5. Customised error pages MUST have a minimal download size and SHOULD provide additional local help to the standard error page for bbc.co.uk.

18.6. You MUST NOT link to www0.bbc.co.uk, or any single BBC server in any link. This will not work from outside the BBC and will present a 404 error to the user.

Top of page

19. Environment Variables

19.1. You MUST NOT rely on the accuracy of referrer information, as this is often removed or spoofed.

19.2. You MUST NOT use user agent detection, as this is not reliable, except where distinguishing between mobile device browsers, where it is significantly more reliable. In Javascript you MAY use functionality detection to recognise what a browser is capable of; for example, if(document.images).

19.2.1. You MUST NOT use the user agent to distinguish between mobile and non-mobile browser version.

Top of page

20. Document History and Contacts

Date Version Change Author
29/07/2008 v1.2 Section 5.2 modified to specify that the character set used must be UTF-8. Victoria Jolliffe, Nick Holmes
11/04/2008 v1.1 Added sections 4.2.1. on sIFR usage and 14.0. on Google Maps usage. Victoria Jolliffe, Nick Holmes
12/03/2008 v1.0 Final Release Version Victoria Jolliffe, Nick Holmes
07/03/2008 v0.4 Principles, and audience added to introduction. Document checked for sense and grammar. Victoria Jolliffe
11/02/2008 v0.3 HTML Group edits Nick Holmes
20/12/2007 v0.2 HTML Group edits Nick Holmes
27/03/2007 v0.1 Taken from HTML Integrity standard 1.3 and altered appropriately Nick Holmes

Document editor: Editor, Standards & Guidelines. If you have any comments, questions or requests relating to this document, please contact the Editor, Standards & Guidelines.

Like all other Future Media Standards & Guidelines, this page is updated on a regular basis, through the process described on About Standards & Guidelines.

Top of page

BBC navigation

BBC © 2014 The BBC is not responsible for the content of external sites. Read more.

This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.