Virtual Museum of Canada (VMC) Virtual Exhibits Investment Program
Annex II - Technical Requirements for the Development of VMC Exhibits and Games, 2.1
Table of Contents
1.0 Markup, Presentation, and Scripting
2.0 Accessibility
3.0 Directories, Files, and URLs
4.0 Navigation and Required Page Elements
- Product Title
- VMC Logo
- Navigation
- Copyright
- Credits
- Feedback Mechanism
- Site Map
<title>Element<meta>"description" Element- Indicating Content Language
- Navigational Headers and Footers
5.0 Content Types and Format Standards
6.0 Dublin Core (DC) Metadata
7.0 CHIN Server and Database Technical Specifications
1.0 Markup, Presentation, and Scripting
Baseline Technologies
To ensure that the product's content will be available to the greatest number of visitors regardless of the technical configuration of their system or device:
XHTML 1.0 Strict
- 1.1 The product must use XHTML 1.0 Strict for the semantic and structural markup of Web page content.
- 1.2 The product and all of its pages must validate against the W3C-published Document Type Definition (DTD) for XHTML 1.0 Strict.
Note: With XHTML 1.0 Strict, it is important to understand the issues involved in serving XHTML as HTML (MIME type "text/html") as opposed to XML (MIME type "application/xhtml+xml"). For more on these issues, see the W3C's document, XHTML Media Types, as well as the W3C tutorials, Character sets & encodings in XHTML, HTML and CSS, and Serving XHTML 1.0.
Cascading Style Sheets (CSS)
- 1.3 Presentation and style (i.e., visual layout and design) must be applied through the use of valid Cascading Style Sheets (CSS).
Note: Both CSS 1.0 and CSS 2.1 may be used. It is not required that every browser be provided the same CSS presentation of the product's content. In some cases, it may be preferable to not send certain browsers, e.g. IE/Win 4.x and IE/Mac 5.x, any CSS at all.
- 1.4 CSS must be completely separate from page content and structure and referenced from within a page's
<head>element as external files. No inline or embedded styles are permitted.
ECMAScript (JavaScript)
- 1.5 Client-side scripts must bind to the W3C DOM (DOM-scripting), and be compliant with ECMAScript, version 3 (ECMA-262).
- 1.6 Client-side scripts must be completely separate from page content and structure and referenced from within a page's
<head>element as external files. No inline or embedded client-side scripts are permitted.Note: While inline event handlers (e.g., "
onclick," "onfocus") that call client-side script functions are permitted, it is preferred that these be dynamically written to the DOM using valid, unobtrusive DOM-scripting techniques.
Character Encoding
- 1.7 Every product page must use and declare either UTF-8 or ISO-8859-1 character encoding.
Note: For a discussion of the issues with character encoding and serving XHTML documents, see the W3C tutorial, Character sets & encodings in XHTML, HTML and CSS.
Secure Sockets Layer (SSL)
- 1.8 The product must use the Secure Sockets Layer (SSL) protocol when any personal information (including, but not limited to, name, address, age, email address, telephone number, and credit card number) is solicited from a user and to be stored in the product and kept for use by the institution.
Note: All hyperlinks to non-SSL pages must use absolute URLs. It is not necessary to use SSL when gathering information through form-based email feedback, nor when soliciting a user's nickname only, for example, to store a high score in an online game.
<iframe> Element
- 1.9 Use of the
<iframe>element, i.e., inline frame, is not permitted without CHIN's express approval.
2.0 Accessibility
W3C Web Content Accessibility Guidelines 1.0
To ensure that the product's content will be available to the greatest number of visitors regardless of the technical configuration of their system or device:
- 2.1 The product must conform to Priority 1 and Priority 2 checkpoints (conformance level "Double-A") of the Web Content Accessibility Guidelines (WCAG) 1.0.
Note: In accordance with Priority 1 checkpoints 1.1, 1.3, and 1.4, standalone audio clips must have text transcripts; video clips must include synchronized captions, and audio descriptions of any significant action that takes place in the video, and be accompanied by a full and descriptive text transcript of the video clip.
- 2.2 The product must additionally comply with the WCAG Priority 3 Checkpoint 2.2 where the contrast of text and background colours is concerned.
- 2.3 The product should additionally comply with the WCAG Priority 2 Checkpoint 10.1 eliminating the use of pop-up windows. This rule should apply to all content within the product except for the VMC logo link (see requirement 4.3).
3.0 File Directory Names and Structure
File and Directory Structure
- 3.1 The product's top or root level directory, as well as all directories containing one or more Web page, must include a default page (e.g., index.html, default.html, index.php) that acts as the main page for that directory. See "Navigation" under 4.0 Navigation and Required Page Elements for the navigational structure that these pages must incorporate.
- 3.2 The product must include, within its top or root level directory, separate directories for each language version of the product. See "Navigation" under 4.0 Navigation and Required Page Elements for the navigational structure that these pages must incorporate.
- 3.3 Product files containing important content that is common to all language versions of the product (e.g., images, CSS, JavaScript) must be placed in unique directories located in the product's top or root level directory, and not be duplicated.
- 3.4 Product files specific to a particular language version of the product must be located within that language version's directory (see requirement 3.2 above).
File and Directory Names
- 3.5 File and directory names must not include any underscores or spaces, and may only use the following characters:
- alphanumeric characters (i.e., 0-9, a-z, A-Z)
- hyphen (-)
- period (.)
- 3.6 The product's file and directory names must give equal treatment to both official languages (i.e., English and French) by consistently implementing one of the following approaches:
- language-specific (e.g., a directory named "/manitobaHistory/" and a file named "history.html" for the English version, and "/histoireManitoba/" and "histoire.html" for the French version)
- one word spelled the same in both official languages (e.g., a directory named "/options/" or a file named "menu.html")
- language neutral, such as numbers (e.g., a directory named "/100/" or a file named "123.html"); alphabetic characters (e.g., a directory named "/aaa/" or a file named "abc.html"); or an alphanumeric combination (e.g., a directory named "/10aa1/" or a file named "34de1.html")
- 3.7All of the product's (X)HTML files must use the ".html" suffix, and not the ".htm" suffix.
URLs
Home Page URLs
- 3.8 The URLs for the unilingual home pages and the language-selection "splash" page (see requirements 4.5 and 4.6) must not include any URL name/value parameters.
Relative URLs
- 3.9 All URLs for product pages and resources must be relative, with the exception of URLs from SSL-secured pages to non-SSL-secured pages (see requirement 1.8).
4.0 Navigation and Required Page Elements
Product Title
- 4.1 Every product page must include the product's title in order to identify the page's content as part of the product.
VMC Logo
- 4.2 Every product page must display the VMC logo, to be provided by CHIN, in the page's top right-hand corner and without any image border.
- 4.3 The following JavaScript references and XHTML code for the VMC logo must be incorporated, as is, in the product. First, the
<head>element of every product page must include the following JavaScript source file references:English
<script type="text/javascript" src="http://www.virtualmuseum.ca/Logo_Script/english.js">
</script>French
<script type="text/javascript" src="http://www.virtualmuseum.ca/Logo_Script/francais.js">
</script>Second, the following XHTML code must be used to load and hyperlink the logo image:
English
<a href="http://www.virtualmuseum.ca/English/" onclick="gotoVirtualMuseumofCanada(); return false;"><img src="Images/vmcLogo.gif" alt="Virtual Museum of Canada" /></a>French
<a href="http://www.museevirtuel.ca/Francais/" onclick="gotoVirtualMuseumofCanada(); return false;"><img src="Images/vmcLogo.gif" alt="Musée virtuel du Canada" /></a>Note: Replace "Images/vmcLogo.gif" in the above code with the proper name and location of the logo image file used in the product.
Ideally, the "
onclick" event handler in the VMC logo anchor should be added dynamically once the page's DOM is loaded. However, to avoid potential conflicts with the product's own DOM-scripts, an inline "onclick" event handler is used. - 4.4 The VMC logo image may not form part of a client-side image map without CHIN's express approval.
Navigation
Language Navigation
- 4.5 The default page (e.g., index.html, default.html, index.php) within the product's top level directory must act as the product's language-selection "splash" page and include a hyperlink to the unilingual home page for each language version of the product.
- 4.6 The default page (e.g., index.html, default.html, index.php) within the main directory for each language version of the product must act as the unilingual home page for that language version.
- 4.7 Every product page must have a hyperlink to the product's other language version(s). This hyperlink must be visible without scrolling the page at a screen resolution of 1024 x 768 pixels, and direct the user either to the same page in the other language, or to the product's unilingual home page in the other language.
Home Page Navigation
- 4.8 Every product page must include a hyperlink to the unilingual home page in the relevant language.
Copyright
- 4.9 The product must include, in the form of a separate Web page for each language version, a full copyright statement that identifies all rights holders.
- 4.10 The copyright symbol, ©, the copyright holder, and the year in which the product was launched, must appear on each product page and hyperlink to the full copyright statement (see requirement 4.9 above), for example:
© Museum of History 2005. All Rights Reserved.
Note: If the institution holding the copyright is officially bilingual, use the institution's English name in the English version of the product, and the French institution name in the French version. If the institution is unilingual, use the same unilingual institution name in each language version.
Credits
- 4.11 The product must have a "Credits" page that is hyperlinked to from the both the language selection "splash" page and each unilingual home page, and that acknowledges the financial participation of the Government of Canada as follows:
English
The [Name of Institution] gratefully acknowledges the financial investment by the Department of Canadian Heritage in the creation of this online presentation for the Virtual Museum of Canada.
French
Le [Nom de l'établissement] exprime sa reconnaissance au ministère du Patrimoine canadien pour son investissement financier dans la création de cette présentation en ligne dans le cadre du Musée virtuel du Canada.
- 4.12 The "Credits" page must name and provide hyperlinks to all institutional partners involved with the product.
Feedback Mechanism
- 4.13 Every product page must include a hyperlink to a simple XHTML form that allows for audience feedback. The feedback form must be configured to send an email both to the institution responsible for the product, and to CHIN (at vmccc@virtualmuseum.ca for the English version and mvccc@museevirtuel.ca for the French version), with a clear identification of the product in the subject line.
Note: CHIN will provide, upon request, a customized URL to the VMC's feedback form that can be used for the product's feedback mechanism.
- 4.14 Users must be advised that their feedback messages are also being forwarded to CHIN, and be provided with a hyperlink to the CHIN Privacy Policy (see the example below). Alternatively, information that identifies the user could be stripped from the feedback.
English Message Example
Your comments will also be forwarded to the Canadian Heritage Information Network (CHIN), which has overall responsibility for the Virtual Museum of Canada, to be used as part of its audience research. Please see the CHIN Privacy Policy for more information.
French Message Example
Vos commentaires seront également acheminés au Réseau canadien d'information sur le patrimoine (RCIP), qui a la responsabilité globale du Musée virtuel du Canada. Ils seront utilisés à des fins de recherche sur le public. Veuillez consulter la Politique de protection des renseignements personnels du RCIP pour obtenir de plus amples renseignements.
CHIN Privacy Policy URL — English
http://www.virtualmuseum.ca/English/
Common/copyright.html#privacyCHIN Privacy Policy URL — French
http://www.museevirtuel.ca/Francais/
Common/copyright.html#privacy - 4.15 Users must be advised of the privacy issues associated with sending feedback through email by being provided the following notice:
English
The Internet is a public forum and electronic information can be intercepted. For reasons of security and privacy, we ask that you not send us any personal or confidential information, such as your Social Insurance Number (SIN), home or business address.
French
Internet est un forum public et l'information électronique peut être interceptée. Pour des raisons de sécurité et de respect de la vie privée, nous vous demandons de ne pas nous faire parvenir de renseignements personnels ou confidentiels, tels votre numéro d'assurance sociale, l'adresse de votre domicile ou de votre bureau.
Site Map
- 4.16 The product must include, in the form of a separate Web page for each language version, a site map (i.e., a hierarchically organized list of hyperlinks to all of the major sections and pages of the product at least two directory levels deep) that uses text hyperlinks, as opposed to graphical hyperlinks or buttons.
- 4.17 Every product page must include a text hyperlink to the site map in the appropriate language to help ensure that human users and search engines can find every page of the product.
<title> Element
- 4.18 Every product page must include, within its
<head>element, a<title>element containing a meaningful and keyword-rich title unique to that page's content.
<meta> "description" Element
- 4.19 Each unilingual home page must include, within its
<head>element, a<meta>"description" element containing a meaningful and keyword-rich description of the product's content.
Indicating Content Language
- 4.20 Every product page must identify the primary language for the page by incorporating the "
lang" and "xml:lang" attributes in the<html>element. - 4.21 The language of any page content that is not in the page's primary language must be indicated by incorporating the "
lang" and "xml:lang" attributes in the content's containing XHTML element.
Navigational Headers and Footers
- 4.22 The use of corporate or institutional Web site navigation, such as banners, headers or footers, is not permitted without CHIN's express approval.
5.0 Content Types and Formats
Plug-ins and Specialized Software
If product content requires a plug-in or specialized software in order to be viewed:
- 5.1 The plug-in or specialized software must be freely available and platform-independent.
- 5.2 Hyperlinks to content that requires a plug-in or specialized software must be accompanied by a text indication of the format, file type, and size of the content.
- 5.3 A hyperlink to the source of the relevant plug-in or specialized software must be provided from each page on which a plug-in or specialized specialized software is needed to access the content.
Text
- 5.4 Text-based content must be developed for delivery to a Web browser in XHTML 1.0 Strict.
Note: While all text-based content must be displayed as XHTML, such content can additionally be developed in a proprietary format for viewing or printing with the use of plug-in software freely available over the Internet. An example of this type of format is Adobe's PDF, which requires the use of the Adobe PDF viewer, Adobe Reader.
Text-based content can also be delivered in formats such as RTF or ASCII, or as a delimited text file. Text content produced in such formats is acceptable if the files are intended for download, storage or manipulation by users outside of the browser environment, and if they are not meant as a substitute for content created in XHTML.
Still Images
- 5.5 All still-image graphics must be optimized and enhanced for the Web to reduce file size and download time:
- Line-drawn graphics must use the GIF or PNG formats.
- Photographs, high resolution, and continuous tone images must use the JPEG (24-bit) format.
Note: Exemptions to this requirement may be granted by CHIN in certain situations where the use of proprietary solutions is needed to meet project objectives.
- 5.6 All hyperlinks to image files greater than 80 Kb in size must be accompanied by a text indication of the file's size in order to alert users.
- 5.7 If a thumbnail is being used to hyperlink to a larger image size, the thumbnail must be a separate version, of its larger parent, resized to an appropriate scale. A full sized image cannot be resized through image attributes, in the creation of a thumbnail.
Video/Moving Images
- 5.8 Video can be streamed or delivered as a file to be downloaded. If a video file is prepared for delivery in a high-bandwidth environment, an alternate low-bandwidth version must also be prepared and provided to users.
Note: Some streaming systems allow producers to prepare a single video file that can be played at various streaming speeds corresponding to multiple Internet access speeds. In cases where such systems are used, a single version of a video file is sufficient.
CHIN regularly contracts media streaming services from Akamai. If the product is to use video, it may be possible for it to use these services. For more information, contact CHIN.
- 5.9 Streamed video files that are loaded into a browser-embedded player must not start automatically, and the player must include controls for starting and stopping the video.
- 5.10 All hyperlinks to streamed video files must be accompanied by a text indication of the streamed file's duration.
- 5.11 Where a codec is used to compress video file content, the codec must be included in a standard platform or package, or be freely-available for installation by users. A hyperlink to the codec must be provided for users who need to download and install it.
Audio/Sound
- 5.12 Audio can be streamed or delivered as a file to download. If an audio file is prepared for delivery in a high-bandwidth environment, an alternate low-bandwidth version must also be prepared and provided to users.
Note: Some streaming systems allow producers to prepare a single audio file than can be played at various streaming speeds corresponding to multiple Internet access speeds. In cases where such systems are used, a single version of an audio file is sufficient.
CHIN regularly contracts media streaming services from Akamai. If the product is to use audio, it may be possible for it to use these services. For more information, contact CHIN.
- 5.13 Streamed audio files that are loaded into a browser-embedded player must not start automatically, and the player must include controls for starting and stopping the audio.
- 5.14 All hyperlinks to streamed audio files must be accompanied by a text indication of the streamed file's duration.
- 5.15 Where a codec is used to compress audio file content, it must be included in a standard platform or package, or freely-available for installation by users. A hyperlink to the codec must be provided for users who need to download and install it.
Animations
- 5.16 All hyperlinks to animation files greater than 80 Kb must be accompanied by a text indication of the file's size.
6.0 Dublin Core (DC) Metadata
DC Metadata Elements
- 6.1 The Title, Creator, Subject, Description, Date, Identifier, and Language metadata elements from the Dublin Core Metadata Element Set, Version 1.1 must be included on the following pages:
- the product's language-selection "splash" page
- the product's unilingual home pages
- the main page for every major section of the product
- all pages featuring resources for which there is sufficient context and meaning and which are worth listing in a search engine
Note: DC metadata content for English pages or resources must be in English, while metadata content for French pages or resources must be in French.
Implementing DC Metadata
- 6.2 The product's DC metadata must be expressed in a standardized way that can be read, searched, and exchanged by computer systems.
Note: Metadata can be expressed in XHTML or RDF/XML (Resource Description Framework/Extensible Markup Language). Simple metadata, such as unqualified Dublin Core elements, can easily be expressed in XHTML. More complex metadata, such as qualified Dublin Core elements, can be expressed in XHTML, but with limitations. RDF/XML has been used more successfully for highly-structured, complex metadata.
7.0 CHIN Server and Database Technical Specifications
CHIN Server Environment
- 7.1 Products to be hosted on CHIN's server must be developed for and in accordance with the following environment specifications:
Server
- UNIX — Sun Solaris 10
- Apache 2.2.4
- Static XHTML pages require the ".html" suffix.
CGI and PERL
- CGI scripts require the ".cgi" suffix, and can be located anywhere in the product's directory structure.
- PERL 5.8.8 is enabled.
- Most standard PERL modules are available, for example, CGI, DBI.
- PERL and CGI scripts require the following "shebang" notation:
#!/usr/local/bin/perl
use strict;
PHP
- PHP 5.2.2 is enabled.
- PHP scripts must use the ".php" suffix.
- The register_globals must be OFF.
- The use of the longer variables such as ($HTTP_POST_VARS) is prohibited. Shorter variables such as ($_POST) must be used instead.
- PHP scripts can be located anywhere in the project's directory structure.
- PHP access to MySQL is enabled.
- PHP support for XML is enabled.
- The addition of PHP extensions will be decided by CHIN on a case by case basis. If you are interested in using a particular PHP extension, enquire with CHIN.
Server Side Includes (SSI)
Note: Any XHTML page with the ".html" suffix and the execute bit set will be parsed for Server Side Includes (SSI).
Database
- MySQL 5.0.41
- Direct access to the MySQL database management system (DBMS) will be granted by special permission only. In the case that permission is granted, access will be available through a SSH/command line interface.
- The Department of Canadian Heritage network policy does not permit the use of graphical interfaces for connecting to the database server from outside of the departmental network.
- For the creation of the database structure or the loading of table data, a MySQL-compliant SQL file may be sent to CHIN for loading onto the DBMS.
Script Validation
- 7.2 If the product is to be hosted on CHIN's server, PHP and PERL scripts must adhere to the following validation rules:
- All parameters passed to scripts must be validated before they are used.
- All local variables must be explicitly initialized before they are used.
- Parameters that may only contain values from constrained sets must be validated to ensure that their values are within those constrained sets.
- Parameters must be validated to ensure that their values are of the expected type. For example, if a parameter is to contain only numbers, the value passed must validate as numeric.
- Parameters used as criteria for dynamically generated SQL statements must be escaped (with a backslash) prior to being used in an SQL statement.
- Included/required files must be validated to ensure that their file paths exist on the host server.
- Included/required files must be validated to ensure that they are files.
Note: See "CGI and PERL" and "PHP" under requirement 7.1 above for the latest versions of PERL and PHP in use on CHIN's server.
Database Design
Connection Strings
- 7.3 All database connection strings must be abstracted from the product and placed in a "config.php" file that is stored in a directory not available to the Web server, that is, in a directory one level above the product's root directory.
DBMS
- 7.4 If the product employs a database and is to be hosted on CHIN's server, the database must use the MySQL Database Server database management system (DBMS).
Note: See "Database" under requirement 7.1 above for the latest version of MySQL in use on CHIN's server.
Normalization
- 7.5 If the product employs a database and is to be hosted on CHIN's server, logical data models must be in third normal form (3NF). That is, all attributes of a particular relational table must be functionally dependent on the entire primary key.
Note: In the logical data model, a candidate key that is comprised of real attributes should be used for the primary key. An autoincrement, or other form of artificial key, may be used in the physical data model. Tables may be denormalized in physical data models for performance reasons, but these exceptions must be justified with quantitative evidence, e.g., how much faster is the denormalized structure.
Naming Standards
- 7.6 If the product employs a database and is to be hosted on CHIN's server, the following database naming standards must be followed:
- Databases must have a descriptive name and a short abbreviation (max. 5 characters).
- Tables must have a descriptive name prefixed with its database abbreviation, and a short abbreviation (max. 5 characters).
- Fields must have a descriptive name prefixed with their table abbreviation.
- Views must have a descriptive name prefixed with their database abbreviation.
- Index names must begin with a "U" for unique indices or "S" for non-unique indices, followed by the table abbreviation, followed by the name of each field that participates in the index.
- Trigger names must begin with "TD" (on
DELETE), "TI" (onINSERT), or "TU" (onUPDATE) followed by the table name. For RDBMSs that allow for field-level rather than table-level triggers, the table name must be replaced by the table abbreviation and field name.
Data Dictionary
- 7.7 If the product employs a database and is to be hosted on CHIN's server, all database elements (database, table, field, index, view, trigger, etc.) must have a name, caption, and description. Fields must also have data type and default value information.
Note: The description of views should include the view definition, and the description of triggers should include annotated source code.
- 7.8 If the product employs a database and is to be hosted on CHIN's server, any information that is stored in the database and that indicates product usage must have an associated timestamp value for tracking and verification purposes.