diff --git a/.github/workflows/11ty-publish.yaml b/.github/workflows/11ty-publish.yaml index adbb274be0..198641fc31 100644 --- a/.github/workflows/11ty-publish.yaml +++ b/.github/workflows/11ty-publish.yaml @@ -1,4 +1,4 @@ -name: CI +name: Push to gh-pages branch # Reference documentation: https://docs.github.com/en/actions/reference @@ -36,10 +36,13 @@ jobs: curl https://labs.w3.org/spec-generator/?type=respec"&"url=https://raw.githack.com/$GITHUB_REPOSITORY/main/requirements/22/index.html -o _site/requirements/22/index.html -f --retry 3 curl https://labs.w3.org/spec-generator/?type=respec"&"url=https://raw.githack.com/$GITHUB_REPOSITORY/main/conformance-challenges/index.html -o _site/conformance-challenges/index.html -f --retry 3 - name: Push - working-directory: _site - run: | - git config user.email 87540780+w3cgruntbot@users.noreply.github.com - git config user.name w3cgruntbot - git add -A . - git commit -m ":robot: Deploy to GitHub Pages: $GITHUB_SHA from branch $GITHUB_REF" - git push origin gh-pages + uses: stefanzweifel/git-auto-commit-action@v5 + with: + repository: _site + branch: gh-pages + commit_user_name: w3cgruntbot + commit_user_email: 87540780+w3cgruntbot@users.noreply.github.com + commit_author: "w3cgruntbot <87540780+w3cgruntbot@users.noreply.github.com>" + commit_message: ":robot: Deploy to GitHub Pages: ${{ github.sha }} from branch ${{ github.ref }}" + skip_fetch: true + skip_checkout: true diff --git a/.pr-preview.json b/.pr-preview.json deleted file mode 100644 index bf7627ccb3..0000000000 --- a/.pr-preview.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "src_file": "guidelines/index.html", - "type": "respec" -} diff --git a/11ty/CustomLiquid.ts b/11ty/CustomLiquid.ts index 9afe6829a3..948a4847f3 100644 --- a/11ty/CustomLiquid.ts +++ b/11ty/CustomLiquid.ts @@ -1,6 +1,5 @@ -import type { Cheerio, Element } from "cheerio"; import { Liquid, type Template } from "liquidjs"; -import type { RenderOptions } from "liquidjs/dist/liquid-options"; +import type { LiquidOptions, RenderOptions } from "liquidjs/dist/liquid-options"; import compact from "lodash-es/compact"; import uniq from "lodash-es/uniq"; @@ -8,9 +7,10 @@ import { basename } from "path"; import type { GlobalData } from "eleventy.config"; -import { flattenDom, load } from "./cheerio"; +import { biblioPattern, getBiblio } from "./biblio"; +import { flattenDom, load, type CheerioAnyNode } from "./cheerio"; import { generateId } from "./common"; -import { getTermsMap } from "./guidelines"; +import { getAcknowledgementsForVersion, type TermsMap } from "./guidelines"; import { resolveTechniqueIdFromHref, understandingToTechniqueLinkSelector } from "./techniques"; import { techniqueToUnderstandingLinkSelector } from "./understanding"; @@ -21,7 +21,7 @@ const indexPattern = /(techniques|understanding)\/(index|about)\.html$/; const techniquesPattern = /\btechniques\//; const understandingPattern = /\bunderstanding\//; -const termsMap = await getTermsMap(); +const biblio = await getBiblio(); const termLinkSelector = "a:not([href])"; /** Generates {% include "foo.html" %} directives from 1 or more basenames */ @@ -61,7 +61,7 @@ const normalizeTocLabel = (label: string) => * expand to a link with the full technique ID and title. * @param $el a $()-wrapped link element */ -function expandTechniqueLink($el: Cheerio<Element>) { +function expandTechniqueLink($el: CheerioAnyNode) { const href = $el.attr("href"); if (!href) throw new Error("expandTechniqueLink: non-link element encountered"); const id = resolveTechniqueIdFromHref(href); @@ -71,6 +71,10 @@ function expandTechniqueLink($el: Cheerio<Element>) { const stripHtmlComments = (html: string) => html.replace(/<!--[\s\S]*?-->/g, ""); +interface CustomLiquidOptions extends LiquidOptions { + termsMap: TermsMap; +} + // Dev note: Eleventy doesn't expose typings for its template engines for us to neatly extend. // Fortunately, it passes both the content string and the file path through to Liquid#parse: // https://github.com/11ty/eleventy/blob/9c3a7619/src/Engines/Liquid.js#L253 @@ -83,13 +87,18 @@ const stripHtmlComments = (html: string) => html.replace(/<!--[\s\S]*?-->/g, "") * - generating/expanding sections with auto-generated content */ export class CustomLiquid extends Liquid { + termsMap: TermsMap; + constructor(options: CustomLiquidOptions) { + super(options); + this.termsMap = options.termsMap; + } public parse(html: string, filepath?: string) { // Filter out Liquid calls for computed data and includes themselves if (filepath && !filepath.includes("_includes/") && isHtmlFileContent(html)) { const isIndex = indexPattern.test(filepath); const isTechniques = techniquesPattern.test(filepath); const isUnderstanding = understandingPattern.test(filepath); - + if (!isTechniques && !isUnderstanding) return super.parse(html); const $ = flattenDom(html, filepath); @@ -299,13 +308,21 @@ export class CustomLiquid extends Liquid { public async render(templates: Template[], scope: GlobalData, options?: RenderOptions) { // html contains markup after Liquid tags/includes have been processed const html = (await super.render(templates, scope, options)).toString(); - if (!isHtmlFileContent(html) || !scope) return html; + if (!isHtmlFileContent(html) || !scope || scope.page.url === false) return html; const $ = load(html); if (indexPattern.test(scope.page.inputPath)) { // Remove empty list items due to obsolete technique link removal if (scope.isTechniques) $("ul.toc-wcag-docs li:empty").remove(); + + // Replace acknowledgements with pinned content for older versions + if (process.env.WCAG_VERSION && $("section#acknowledgements").length) { + const pinnedAcknowledgements = await getAcknowledgementsForVersion(scope.version); + for (const [id, content] of Object.entries(pinnedAcknowledgements)) { + $(`#${id} h3 +`).html(content); + } + } } else { const $title = $("title"); @@ -399,13 +416,13 @@ export class CustomLiquid extends Liquid { // Process defined terms within #render, // where we have access to global data and the about box's HTML const $termLinks = $(termLinkSelector); - const extractTermName = ($el: Cheerio<Element>) => { + const extractTermName = ($el: CheerioAnyNode) => { const name = $el .text() .toLowerCase() .trim() .replace(/\s*\n+\s*/, " "); - const term = termsMap[name]; + const term = this.termsMap[name]; if (!term) { console.warn(`${scope.page.inputPath}: Term not found: ${name}`); return; @@ -419,12 +436,12 @@ export class CustomLiquid extends Liquid { const $el = $(el); const termName = extractTermName($el); $el - .attr("href", `${scope.guidelinesUrl}#${termName ? termsMap[termName].trId : ""}`) + .attr("href", `${scope.guidelinesUrl}#${termName ? this.termsMap[termName].trId : ""}`) .attr("target", "terms"); }); } else if (scope.isUnderstanding) { const $termsList = $("section#key-terms dl"); - const extractTermNames = ($links: Cheerio<Element>) => + const extractTermNames = ($links: CheerioAnyNode) => compact(uniq($links.toArray().map((el) => extractTermName($(el))))); if ($termLinks.length) { @@ -433,7 +450,7 @@ export class CustomLiquid extends Liquid { // since terms may reference other terms in their own definitions. // Each iteration may append to termNames. for (let i = 0; i < termNames.length; i++) { - const term = termsMap[termNames[i]]; + const term = this.termsMap[termNames[i]]; if (!term) continue; // This will already warn via extractTermNames const $definition = load(term.definition); @@ -450,7 +467,7 @@ export class CustomLiquid extends Liquid { return 0; }); for (const name of termNames) { - const term = termsMap[name]; // Already verified existence in the earlier loop + const term = this.termsMap[name]; // Already verified existence in the earlier loop $termsList.append( `<dt id="${term.id}">${term.name}</dt>` + `<dd><definition>${term.definition}</definition></dd>` @@ -460,7 +477,7 @@ export class CustomLiquid extends Liquid { // Iterate over non-href links once more in now-expanded document to add hrefs $(termLinkSelector).each((_, el) => { const name = extractTermName($(el)); - el.attribs.href = `#${name ? termsMap[name].id : ""}`; + el.attribs.href = `#${name ? this.termsMap[name].id : ""}`; }); } else { // No terms: remove skeleton that was placed in #parse @@ -494,7 +511,8 @@ export class CustomLiquid extends Liquid { // (This is also needed for techniques/about) $("div.note").each((_, el) => { const $el = $(el); - $el.replaceWith(`<div class="note"> + const classes = el.attribs.class; + $el.replaceWith(`<div class="${classes}"> <p class="note-title marker">Note</p> <div>${$el.html()}</div> </div>`); @@ -502,12 +520,13 @@ export class CustomLiquid extends Liquid { // Handle p variant after div (the reverse would double-process) $("p.note").each((_, el) => { const $el = $(el); - $el.replaceWith(`<div class="note"> + const classes = el.attribs.class; + $el.replaceWith(`<div class="${classes}"> <p class="note-title marker">Note</p> <p>${$el.html()}</p> </div>`); }); - + // Add header to example sections in Key Terms (aside) and Conformance (div) $("aside.example, div.example").each((_, el) => { const $el = $(el); @@ -520,13 +539,19 @@ export class CustomLiquid extends Liquid { // Handle new-in-version content $("[class^='wcag']").each((_, el) => { // Just like the XSLT process, this naively assumes that version numbers are the same length - const classVersion = +el.attribs.class.replace(/^wcag/, ""); - const buildVersion = +scope.version; + const classMatch = el.attribs.class.match(/\bwcag(\d\d)\b/); + if (!classMatch) throw new Error(`Invalid wcagXY class found: ${el.attribs.class}`); + const classVersion = +classMatch[1]; if (isNaN(classVersion)) throw new Error(`Invalid wcagXY class found: ${el.attribs.class}`); + const buildVersion = +scope.version; + if (classVersion > buildVersion) { $(el).remove(); } else if (classVersion === buildVersion) { - $(el).prepend(`<span class="new-version">New in WCAG ${scope.versionDecimal}: </span>`); + if (/\bnote\b/.test(el.attribs.class)) + $(el).find(".marker").append(` (new in WCAG ${scope.versionDecimal})`); + else + $(el).prepend(`<span class="new-version">New in WCAG ${scope.versionDecimal}: </span>`); } // Output as-is if content pertains to a version older than what's being built }); @@ -540,6 +565,21 @@ export class CustomLiquid extends Liquid { }); } + // Link biblio references + if (scope.isUnderstanding) { + $("p").each((_, el) => { + const $el = $(el); + const html = $el.html(); + if (html && biblioPattern.test(html)) { + $el.html( + html.replace(biblioPattern, (substring, code) => + biblio[code]?.href ? `[<a href="${biblio[code].href}">${code}</a>]` : substring + ) + ); + } + }); + } + // Allow autogenerating missing top-level section IDs in understanding docs, // but don't pick up incorrectly-nested sections in some techniques pages (e.g. H91) const sectionSelector = scope.isUnderstanding ? "section" : "section[id]:not(.obsolete)"; diff --git a/11ty/README.md b/11ty/README.md index 168db395e5..a1b7d063b2 100644 --- a/11ty/README.md +++ b/11ty/README.md @@ -49,12 +49,17 @@ but may be useful if you're not seeing what you expect in the output files. ### `WCAG_VERSION` -**Usage context:** currently this should not be changed, pending future improvements to `21` support +**Usage context:** for building older versions of techniques and understanding docs Indicates WCAG version being built, in `XY` format (i.e. no `.`). -Influences base URLs for links to guidelines, techniques, and understanding pages. - -**Default:** `22` +Influences which pages get included, guideline/SC content, +and a few details within pages (e.g. titles/URLs, "New in ..." content). +Also influences base URLs for links to guidelines, techniques, and understanding pages. +Explicitly setting this causes the build to reference guidelines and acknowledgements +published under `w3.org/TR/WCAG{version}`, rather than using the local checkout +(which is effectively the 2.2 Editors' Draft). + +Possible values: `22`, `21` ### `WCAG_MODE` diff --git a/11ty/biblio.ts b/11ty/biblio.ts new file mode 100644 index 0000000000..fcf5faca80 --- /dev/null +++ b/11ty/biblio.ts @@ -0,0 +1,39 @@ +import axios from "axios"; +import { readFile } from "fs/promises"; +import { glob } from "glob"; +import uniq from "lodash-es/uniq"; + +import { wrapAxiosRequest } from "./common"; + +export const biblioPattern = /\[\[\??([\w-]+)\]\]/g; + +/** Compiles URLs from local biblio + specref for linking in Understanding documents. */ +export async function getBiblio() { + const localBiblio = eval( + (await readFile("biblio.js", "utf8")) + .replace(/^respecConfig\.localBiblio\s*=\s*/, "(") + .replace("};", "})") + ); + + const refs: string[] = []; + for (const path of await glob(["guidelines/**/*.html", "understanding/*/*.html"])) { + const content = await readFile(path, "utf8"); + let match; + while ((match = biblioPattern.exec(content))) if (!localBiblio[match[1]]) refs.push(match[1]); + } + const uniqueRefs = uniq(refs); + + const response = await wrapAxiosRequest( + axios.get(`https://api.specref.org/bibrefs?refs=${uniqueRefs.join(",")}`) + ); + const fullBiblio = { + ...response.data, + ...localBiblio, + }; + + const resolvedRefs = Object.keys(fullBiblio); + const unresolvedRefs = uniqueRefs.filter((ref) => !resolvedRefs.includes(ref)); + if (unresolvedRefs.length) console.warn(`Unresolved biblio refs: ${unresolvedRefs.join(", ")}`); + + return fullBiblio; +} diff --git a/11ty/cheerio.ts b/11ty/cheerio.ts index f1292be14b..72f3c65008 100644 --- a/11ty/cheerio.ts +++ b/11ty/cheerio.ts @@ -5,6 +5,9 @@ import { dirname, resolve } from "path"; export { load } from "cheerio"; +/** Superset of the type returned by any Cheerio $() call. */ +export type CheerioAnyNode = ReturnType<ReturnType<typeof load>>; + /** Convenience function that combines readFile and load. */ export const loadFromFile = async ( inputPath: string, diff --git a/11ty/common.ts b/11ty/common.ts index ade5d87f14..bda9ec4618 100644 --- a/11ty/common.ts +++ b/11ty/common.ts @@ -1,5 +1,7 @@ /** @fileoverview Common functions used by multiple parts of the build process */ +import { AxiosError, type AxiosResponse } from "axios"; + import type { Guideline, Principle, SuccessCriterion } from "./guidelines"; /** Generates an ID for heading permalinks. Equivalent to wcag:generate-id in base.xslt. */ @@ -28,3 +30,23 @@ export function wcagSort( } return 0; } + +/** + * Handles HTTP error responses from Axios requests in local dev; + * re-throws error during builds to fail loudly. + * This should only be used for non-critical requests that can tolerate null data + * without major side effects. + */ +export const wrapAxiosRequest = <T, D>(promise: Promise<AxiosResponse<T, D>>) => + promise.catch((error) => { + if (!(error instanceof AxiosError) || !error.response || !error.request) throw error; + const { response, request } = error; + console.warn( + `AxiosError: status ${response.status} received from ${ + request.protocol + "//" + request.host + }${request.path || ""}` + ); + + if (process.env.ELEVENTY_RUN_MODE === "build") throw error; + else return { data: null }; + }); diff --git a/11ty/guidelines.ts b/11ty/guidelines.ts index 08c4ec1c3e..0dc8ace485 100644 --- a/11ty/guidelines.ts +++ b/11ty/guidelines.ts @@ -1,10 +1,11 @@ -import type { Cheerio, Element } from "cheerio"; +import axios from "axios"; +import type { CheerioAPI } from "cheerio"; import { glob } from "glob"; import { readFile } from "fs/promises"; import { basename } from "path"; -import { flattenDomFromFile, load } from "./cheerio"; +import { flattenDomFromFile, load, type CheerioAnyNode } from "./cheerio"; import { generateId } from "./common"; export type WcagVersion = "20" | "21" | "22"; @@ -34,40 +35,21 @@ export const actRules = ( )["act-rules"]; /** - * Returns an object with keys for each existing WCAG 2 version, - * each mapping to an array of basenames of HTML files under understanding/<version> - * (Functionally equivalent to "guidelines-versions" target in build.xml) + * Flattened object hash, mapping each WCAG 2 SC slug to the earliest WCAG version it applies to. + * (Functionally equivalent to "guidelines-versions" target in build.xml; structurally inverted) */ -export async function getGuidelinesVersions() { +const scVersions = await (async function () { const paths = await glob("*/*.html", { cwd: "understanding" }); - const versions: Record<WcagVersion, string[]> = { "20": [], "21": [], "22": [] }; + const map: Record<string, WcagVersion> = {}; for (const path of paths) { - const [version, filename] = path.split("/"); - assertIsWcagVersion(version); - versions[version].push(basename(filename, ".html")); + const [fileVersion, filename] = path.split("/"); + assertIsWcagVersion(fileVersion); + map[basename(filename, ".html")] = fileVersion; } - for (const version of Object.keys(versions)) { - assertIsWcagVersion(version); - versions[version].sort(); - } - return versions; -} - -/** - * Like getGuidelinesVersions, but mapping each basename to the version it appears in - */ -export async function getInvertedGuidelinesVersions() { - const versions = await getGuidelinesVersions(); - const invertedVersions: Record<string, string> = {}; - for (const [version, basenames] of Object.entries(versions)) { - for (const basename of basenames) { - invertedVersions[basename] = version; - } - } - return invertedVersions; -} + return map; +})(); export interface DocNode { id: string; @@ -79,7 +61,7 @@ export interface DocNode { export interface Principle extends DocNode { content: string; num: `${number}`; // typed as string for consistency with guidelines/SC - version: "WCAG20"; + version: "20"; guidelines: Guideline[]; type: "Principle"; } @@ -87,7 +69,7 @@ export interface Principle extends DocNode { export interface Guideline extends DocNode { content: string; num: `${Principle["num"]}.${number}`; - version: `WCAG${"20" | "21"}`; + version: "20" | "21"; successCriteria: SuccessCriterion[]; type: "Guideline"; } @@ -97,7 +79,7 @@ export interface SuccessCriterion extends DocNode { num: `${Guideline["num"]}.${number}`; /** Level may be empty for obsolete criteria */ level: "A" | "AA" | "AAA" | ""; - version: `WCAG${WcagVersion}`; + version: WcagVersion; type: "SC"; } @@ -105,42 +87,55 @@ export function isSuccessCriterion(criterion: any): criterion is SuccessCriterio return !!(criterion?.type === "SC" && "level" in criterion); } +/** Version-dependent overrides of SC shortcodes for older versions */ +export const scSlugOverrides: Record<string, (version: WcagVersion) => string> = { + "target-size-enhanced": (version) => (version < "22" ? "target-size" : "target-size-enhanced"), +}; + +/** Selectors ignored when capturing content of each Principle / Guideline / SC */ +const contentIgnores = [ + "h1, h2, h3, h4, h5, h6", + "section", + ".change", + ".conformance-level", + // Selectors below are specific to pre-published guidelines (for previous versions) + ".header-wrapper", + ".doclinks", +]; + /** - * Returns HTML content used for Understanding guideline/SC boxes. + * Returns HTML content used for Understanding guideline/SC boxes and term definitions. * @param $el Cheerio element of the full section from flattened guidelines/index.html */ -const getContentHtml = ($el: Cheerio<Element>) => { +const getContentHtml = ($el: CheerioAnyNode) => { // Load HTML into a new instance, remove elements we don't want, then return the remainder const $ = load($el.html()!, null, false); - $("h1, h2, h3, h4, h5, h6, section, .change, .conformance-level").remove(); - return $.html(); + $(contentIgnores.join(", ")).remove(); + return $.html().trim(); }; -/** - * Resolves information from guidelines/index.html; - * comparable to the principles section of wcag.xml from the guidelines-xml Ant task. - */ -export async function getPrinciples() { - const versions = await getInvertedGuidelinesVersions(); - const $ = await flattenDomFromFile("guidelines/index.html"); - +/** Performs processing common across WCAG versions */ +function processPrinciples($: CheerioAPI) { const principles: Principle[] = []; $(".principle").each((i, el) => { const guidelines: Guideline[] = []; - $(".guideline", el).each((j, guidelineEl) => { + $("> .guideline", el).each((j, guidelineEl) => { const successCriteria: SuccessCriterion[] = []; - $(".sc", guidelineEl).each((k, scEl) => { - const resolvedVersion = versions[scEl.attribs.id]; - assertIsWcagVersion(resolvedVersion); - + // Source uses sc class, published uses guideline class (again) + $("> .guideline, > .sc", guidelineEl).each((k, scEl) => { + const scId = scEl.attribs.id; successCriteria.push({ content: getContentHtml($(scEl)), - id: scEl.attribs.id, + id: scId, name: $("h4", scEl).text().trim(), num: `${i + 1}.${j + 1}.${k + 1}`, - level: $("p.conformance-level", scEl).text().trim() as SuccessCriterion["level"], + // conformance-level contains only letters in source, full (Level ...) in publish + level: $("p.conformance-level", scEl) + .text() + .trim() + .replace(/^\(Level (.*)\)$/, "$1") as SuccessCriterion["level"], type: "SC", - version: `WCAG${resolvedVersion}`, + version: scVersions[scId], }); }); @@ -150,7 +145,7 @@ export async function getPrinciples() { name: $("h3", guidelineEl).text().trim(), num: `${i + 1}.${j + 1}`, type: "Guideline", - version: guidelineEl.attribs.id === "input-modalities" ? "WCAG21" : "WCAG20", + version: guidelineEl.attribs.id === "input-modalities" ? "21" : "20", successCriteria, }); }); @@ -161,7 +156,7 @@ export async function getPrinciples() { name: $("h2", el).text().trim(), num: `${i + 1}`, type: "Principle", - version: "WCAG20", + version: "20", guidelines, }); }); @@ -169,6 +164,13 @@ export async function getPrinciples() { return principles; } +/** + * Resolves information from guidelines/index.html; + * comparable to the principles section of wcag.xml from the guidelines-xml Ant task. + */ +export const getPrinciples = async () => + processPrinciples(await flattenDomFromFile("guidelines/index.html")); + /** * Returns a flattened object hash, mapping shortcodes to each principle/guideline/SC. */ @@ -195,14 +197,17 @@ interface Term { /** id of dfn in TR, which matches original id in terms file */ trId: string; } +export type TermsMap = Record<string, Term>; /** * Resolves term definitions from guidelines/index.html organized for lookup by name; * comparable to the term elements in wcag.xml from the guidelines-xml Ant task. */ -export async function getTermsMap() { - const $ = await flattenDomFromFile("guidelines/index.html"); - const terms: Record<string, Term> = {}; +export async function getTermsMap(version?: WcagVersion) { + const $ = version + ? await loadRemoteGuidelines(version) + : await flattenDomFromFile("guidelines/index.html"); + const terms: TermsMap = {}; $("dfn").each((_, el) => { const $el = $(el); @@ -225,3 +230,63 @@ export async function getTermsMap() { return terms; } + +// Version-specific APIs + +const remoteGuidelines$: Partial<Record<WcagVersion, CheerioAPI>> = {}; + +/** Loads guidelines from TR space for specific version, caching for future calls. */ +const loadRemoteGuidelines = async (version: WcagVersion) => { + if (!remoteGuidelines$[version]) { + const $ = load( + (await axios.get(`https://www.w3.org/TR/WCAG${version}/`, { responseType: "text" })).data + ); + + // Re-collapse definition links and notes, to be processed by this build system + $("a.internalDFN").removeAttr("class data-link-type id href title"); + $("[role='note'] .marker").remove(); + $("[role='note']").find("> div, > p").addClass("note").unwrap(); + + // Un-process bibliography references, to be processed by CustomLiquid + $("cite:has(a.bibref:only-child)").each((_, el) => { + const $el = $(el); + $el.replaceWith(`[${$el.find("a.bibref").html()}]`); + }); + + // Remove generated IDs and markers from examples + $(".example[id]").removeAttr("id"); + $(".example .marker:has(.self-link)").remove(); + + // Remove extra markup from headings so they can be parsed for names + $("bdi").remove(); + + // Remove abbr elements which exist only in TR, not in informative docs + $("#acknowledgements li abbr, #glossary abbr").each((_, abbrEl) => { + $(abbrEl).replaceWith($(abbrEl).text()); + }); + + remoteGuidelines$[version] = $; + } + return remoteGuidelines$[version]!; +}; + +/** + * Retrieves heading and content information for acknowledgement subsections, + * for preserving the section in About pages for earlier versions. + */ +export const getAcknowledgementsForVersion = async (version: WcagVersion) => { + const $ = await loadRemoteGuidelines(version); + const subsections: Record<string, string> = {}; + + $("section#acknowledgements section").each((_, el) => { + subsections[el.attribs.id] = $(".header-wrapper + *", el).html()!; + }); + + return subsections; +}; + +/** + * Retrieves and processes a pinned WCAG version using published guidelines. + */ +export const getPrinciplesForVersion = async (version: WcagVersion) => + processPrinciples(await loadRemoteGuidelines(version)); diff --git a/11ty/techniques.ts b/11ty/techniques.ts index 94820e7784..fcfd5dd1f6 100644 --- a/11ty/techniques.ts +++ b/11ty/techniques.ts @@ -199,7 +199,7 @@ export interface Technique extends TechniqueFrontMatter { * Used to generate index table of contents. * (Functionally equivalent to "techniques-list" target in build.xml) */ -export async function getTechniquesByTechnology() { +export async function getTechniquesByTechnology(guidelines: FlatGuidelinesMap) { const paths = await glob("*/*.html", { cwd: "techniques" }); const techniques = technologies.reduce( (map, technology) => ({ @@ -208,6 +208,9 @@ export async function getTechniquesByTechnology() { }), {} as Record<Technology, Technique[]> ); + const scNumbers = Object.values(guidelines) + .filter((entry): entry is SuccessCriterion => entry.type === "SC") + .map(({ num }) => num); // Check directory data files (we don't have direct access to 11ty's data cascade here) const technologyData: Partial<Record<Technology, any>> = {}; @@ -237,13 +240,37 @@ export async function getTechniquesByTechnology() { if (!h1Match || !h1Match[1]) throw new Error(`No h1 found in techniques/${path}`); const $h1 = load(h1Match[1], null, false); - const title = $h1.text(); + let title = $h1.text(); + let titleHtml = $h1.html(); + if (process.env.WCAG_VERSION) { + // Check for invalid SC references for the WCAG version being built + const multiScPattern = /(?:\d\.\d+\.\d+(,?) )+and \d\.\d+\.\d+/; + if (multiScPattern.test(title)) { + const scPattern = /\d\.\d+\.\d+/g; + const criteria: typeof scNumbers = []; + let match; + while ((match = scPattern.exec(title))) + criteria.push(match[0] as `${number}.${number}.${number}`); + const filteredCriteria = criteria.filter((sc) => scNumbers.includes(sc)); + if (filteredCriteria.length) { + const finalSeparator = + filteredCriteria.length > 2 && multiScPattern.exec(title)?.[1] ? "," : ""; + const replacement = `${filteredCriteria.slice(0, -1).join(", ")}${finalSeparator} and ${ + filteredCriteria[filteredCriteria.length - 1] + }`; + title = title.replace(multiScPattern, replacement); + titleHtml = titleHtml.replace(multiScPattern, replacement); + } + // If all SCs were filtered out, do nothing - should be pruned when associations are checked + } + } + techniques[technology].push({ ...data, // Include front-matter id: basename(filename, ".html"), technology, title, - titleHtml: $h1.html(), + titleHtml, truncatedTitle: title.replace(/\s*\n[\s\S]*\n\s*/, " … "), }); } diff --git a/11ty/types.ts b/11ty/types.ts index 9bdd86c9f1..ed89e25178 100644 --- a/11ty/types.ts +++ b/11ty/types.ts @@ -9,7 +9,7 @@ interface EleventyPage { outputPath: string; rawInput: string; templateSyntax: string; - url: string; + url: string | false; // (false when permalink is set to false for the page) } interface EleventyDirectories { diff --git a/11ty/understanding.ts b/11ty/understanding.ts index c9b414b63f..1379b1915c 100644 --- a/11ty/understanding.ts +++ b/11ty/understanding.ts @@ -24,11 +24,11 @@ export async function getUnderstandingDocs(version: WcagVersion): Promise<DocNod }, { id: "understanding-techniques", - name: "Understanding Techniques for WCAG Success Criteria", + name: `Understanding Techniques for WCAG ${decimalVersion} Success Criteria`, }, { id: "understanding-act-rules", - name: "Understanding Test Rules for WCAG Success Criteria", + name: `Understanding Test Rules for WCAG ${decimalVersion} Success Criteria`, }, { id: "conformance", diff --git a/README.md b/README.md index 6bee8669d4..66c59c52de 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,11 @@ Content for WCAG 2.1 and later is organized according to the file structure belo Where `{version}` is "20", content came from WCAG 2.0. "21" is used for content introduced in WCAG 2.1, "22" for WCAG 2.2, etc. +## Build System + +The Techniques and Understanding documents are processed through a build system based on Eleventy and Liquid for templating and Cheerio for transformations. +More details, including instructions for previewing the output locally, can be found in the [build process README](11ty/README.md). + ## Editing Draft Success Criteria [Success Criteria Managers](https://www.w3.org/WAI/GL/wiki/SC_Managers_Phase1) will prepare candidate success criteria, ready for inclusion in the guidelines document. To prepare success criteria, follow these steps: @@ -158,7 +163,7 @@ Once a technique branch and file is set up, populate the content and request rev ### Formatting Techniques -Techniques in the repository are plain HTML files with minimal formatting. For publication to the editors' draft and W3C location, techniques are formatted by a build process based on Eleventy for templating and Cheerio for transformations. More details, including instructions for previewing locally, can be found in the [build process README](11ty/README.md). +Techniques in the repository are plain HTML files with minimal formatting. For publication to the editors' draft and W3C location, techniques are formatted by the Eleventy build process described above in the [Build System section](#build-system). The generator compiles the techniques together as a suite with formatting and navigation. It enforces certain structures, such as ordering top-level sections described above and standardizing headings. It attempts to process cross reference links to make sure the URIs work upon publication. One of the most substantial roles is to populate the Applicability section with references to the guidelines or success criteria to which the technique relates. The information for this comes from the Understanding documents. Proper use of the technique template is important to enable this functionality, and mal-formed techniques may cause the generator to fail. @@ -182,6 +187,41 @@ obsoleteMessage: | In cases where entire technologies are obsolete (e.g. Flash and Silverlight), these properties may also be specified at the technique subdirectory level, e.g. via `techniques/flash/flash.11tydata.json`. Note that this case specifically requires JSON format, as this is consumed by both Eleventy and additional code in the build process used to assemble techniques data. +## Version-specific Documentation + +Informative documents are generated from the same source files for both WCAG 2.2 and 2.1, +as most of their content is consistent between them. (The guidelines themselves continue to be +maintained on separate branches e.g. `WCAG-2.1`, for purposes of maintaining separate Editors' Drafts.) + +When building informative documents for older versions, the build system prunes success criteria that are +specific to newer versions, and in turn any techniques that are exclusively related to those criteria. + +There are a few cases where content may need to cater to a specific version, explained in this section. + +### Specifying Precise Version Number within Informative Documents + +**Note:** This is _only_ applicable within `techniques` and `understanding` folders (_not_ `guidelines`). + +In cases where the precise version number should be displayed within informative documents, +insert `{{ versionDecimal }}`. This will be replaced with the decimal-point-delimited version number, +e.g. 2.1 or 2.2. + +### "New in {version}" Call-outs + +In cases where a document pertaining to multiple versions warrants a specific call-out about an update in +a newer version, `class="wcagXY"` can be applied to an element surrounding the prose in question +(e.g. `class="wcag22"` for WCAG 2.2). This will result in the prose being omitted from earlier versions, +and displayed with the prefix "New in WCAG X.Y: " in applicable versions. + +This class can also be applied alongside the `note` class, in which case " (New in WCAG X.Y)" will be +appended to the "Note" title in applicable versions, and the note will be hidden in earlier versions. + +### Techniques Change Log + +At the time of writing (November 2024), the Change Log in the Techniques index is identical between WCAG 2.1 and 2.2. +These have been split out into separate version-specific includes under `_includes/techniques/changelog/*.html` +for future-proofing in support of building multiple versions of informative documents from the same branch. + ## Working Examples Examples in techniques should be brief easy-to-consume code samples of how the technique is used in content. Therefore examples should focus on the specific features the technique describes, and not include related content such as style, script, surrounding web content, etc. diff --git a/_includes/techniques/changelog/21.html b/_includes/techniques/changelog/21.html new file mode 100644 index 0000000000..3323b54657 --- /dev/null +++ b/_includes/techniques/changelog/21.html @@ -0,0 +1,35 @@ +<ol> + <li><time datetime="2024-05-04">4 May 2024</time>: Removed F87 Failure of Success Criterion 1.3.1 due to inserting non-decorative content by using :before and :after pseudo-elements and the 'content' property in CSS</li> + <li><time datetime="2020-07-15">15 July 2020</time>: Removed Flash techniques.</li> + <li><time datetime="2019-09-12">12 Sept 2019</time>: Added {{ "F105" | linkTechniques }}</li> + <li><time datetime="2019-09-12">12 Sept 2019</time>: Added {{ "F106" | linkTechniques }}</li> + <li><time datetime="2019-09-03">3 Sept 2019</time>: Added {{ "F104" | linkTechniques }}</li> + <li><time datetime="2019-09-03">3 Sept 2019</time>: Added {{ "F103" | linkTechniques }}</li> + <li><time datetime="2019-08-06">6 Aug 2019</time>: Added {{ "F102" | linkTechniques }}</li> + <li><time datetime="2019-07-16">16 Jul 2019</time>: Added {{ "G216" | linkTechniques }}</li> + <li><time datetime="2019-07-16">16 Jul 2019</time>: Added {{ "G215" | linkTechniques }}</li> + <li><time datetime="2019-07-16">16 Jul 2019</time>: Added {{ "F100" | linkTechniques }}</li> + <li><time datetime="2019-07-16">16 Jul 2019</time>: Added {{ "G214" | linkTechniques }}</li> + <li><time datetime="2019-07-10">10 Jul 2019</time>: Added {{ "C40" | linkTechniques }}</li> + <li><time datetime="2019-07-10">10 Jul 2019</time>: Added {{ "F99" | linkTechniques }}</li> + <li><time datetime="2019-07-10">10 Jul 2019</time>: Added {{ "SCR39" | linkTechniques }}</li> + <li><time datetime="2019-06-18">18 Jun 2019</time>: Added {{ "G212" | linkTechniques }}</li> + <li><time datetime="2019-06-11">Jun 11 2019</time>: Added {{ "F98" | linkTechniques }}</li> + <li><time datetime="2019-06-18">18 Jun 2019</time>: Added {{ "G213" | linkTechniques }}</li> + <li><time datetime="2019-05-25">25 May 2019</time>: Added {{ "ARIA24" | linkTechniques }}</li> + <li><time datetime="2019-04-20">26 Apr 2019</time>: Added {{ "F97" | linkTechniques }}</li> + <li><time datetime="2019-02-26">26 Feb 2019</time>: Removed {{ "F52" | linkTechniques }} from SC 3.2.1 (still attached to SC 3.2.5)</li> + <li><time datetime="2019-02-26">26 Feb 2019</time>: Added {{ "G209" | linkTechniques }}</li> + <li><time datetime="2019-01-10">10 Jan 2019</time>: Added {{ "C39" | linkTechniques }}</li> + <li><time datetime="2018-12-14">14 Dec 2018</time>: Added {{ "G207" | linkTechniques }}</li> + <li><time datetime="2018-11-13">30 Nov 2018</time>: Added {{ "C38" | linkTechniques }}</li> + <li><time datetime="2018-11-30">30 Nov 2018</time>: Added {{ "F95" | linkTechniques }}</li> + <li><time datetime="2018-11-13">13 Nov 2018</time>: Added {{ "C34" | linkTechniques }}</li> + <li><time datetime="2018-11-13">13 Nov 2018</time>: Added {{ "C36" | linkTechniques }}</li> + <li><time datetime="2018-11-13">13 Nov 2018</time>: Added {{ "C37" | linkTechniques }}</li> + <li><time datetime="2018-11-30">30 Nov 2018</time>: Added {{ "G207" | linkTechniques }}</li> + <li><time datetime="2018-11-30">30 Nov 2018</time>: Added {{ "F95" | linkTechniques }}</li> + <li><time datetime="2018-11-30">30 Nov 2018</time>: Added {{ "F96" | linkTechniques }}</li> + <li><time datetime="2018-11-30">30 Nov 2018</time>: Added {{ "C38" | linkTechniques }}</li> + <li><time datetime="2018-12-14">14 Dec 2018</time>: Added {{ "G207" | linkTechniques }}</li> +</ol> diff --git a/_includes/techniques/changelog/22.html b/_includes/techniques/changelog/22.html new file mode 100644 index 0000000000..3323b54657 --- /dev/null +++ b/_includes/techniques/changelog/22.html @@ -0,0 +1,35 @@ +<ol> + <li><time datetime="2024-05-04">4 May 2024</time>: Removed F87 Failure of Success Criterion 1.3.1 due to inserting non-decorative content by using :before and :after pseudo-elements and the 'content' property in CSS</li> + <li><time datetime="2020-07-15">15 July 2020</time>: Removed Flash techniques.</li> + <li><time datetime="2019-09-12">12 Sept 2019</time>: Added {{ "F105" | linkTechniques }}</li> + <li><time datetime="2019-09-12">12 Sept 2019</time>: Added {{ "F106" | linkTechniques }}</li> + <li><time datetime="2019-09-03">3 Sept 2019</time>: Added {{ "F104" | linkTechniques }}</li> + <li><time datetime="2019-09-03">3 Sept 2019</time>: Added {{ "F103" | linkTechniques }}</li> + <li><time datetime="2019-08-06">6 Aug 2019</time>: Added {{ "F102" | linkTechniques }}</li> + <li><time datetime="2019-07-16">16 Jul 2019</time>: Added {{ "G216" | linkTechniques }}</li> + <li><time datetime="2019-07-16">16 Jul 2019</time>: Added {{ "G215" | linkTechniques }}</li> + <li><time datetime="2019-07-16">16 Jul 2019</time>: Added {{ "F100" | linkTechniques }}</li> + <li><time datetime="2019-07-16">16 Jul 2019</time>: Added {{ "G214" | linkTechniques }}</li> + <li><time datetime="2019-07-10">10 Jul 2019</time>: Added {{ "C40" | linkTechniques }}</li> + <li><time datetime="2019-07-10">10 Jul 2019</time>: Added {{ "F99" | linkTechniques }}</li> + <li><time datetime="2019-07-10">10 Jul 2019</time>: Added {{ "SCR39" | linkTechniques }}</li> + <li><time datetime="2019-06-18">18 Jun 2019</time>: Added {{ "G212" | linkTechniques }}</li> + <li><time datetime="2019-06-11">Jun 11 2019</time>: Added {{ "F98" | linkTechniques }}</li> + <li><time datetime="2019-06-18">18 Jun 2019</time>: Added {{ "G213" | linkTechniques }}</li> + <li><time datetime="2019-05-25">25 May 2019</time>: Added {{ "ARIA24" | linkTechniques }}</li> + <li><time datetime="2019-04-20">26 Apr 2019</time>: Added {{ "F97" | linkTechniques }}</li> + <li><time datetime="2019-02-26">26 Feb 2019</time>: Removed {{ "F52" | linkTechniques }} from SC 3.2.1 (still attached to SC 3.2.5)</li> + <li><time datetime="2019-02-26">26 Feb 2019</time>: Added {{ "G209" | linkTechniques }}</li> + <li><time datetime="2019-01-10">10 Jan 2019</time>: Added {{ "C39" | linkTechniques }}</li> + <li><time datetime="2018-12-14">14 Dec 2018</time>: Added {{ "G207" | linkTechniques }}</li> + <li><time datetime="2018-11-13">30 Nov 2018</time>: Added {{ "C38" | linkTechniques }}</li> + <li><time datetime="2018-11-30">30 Nov 2018</time>: Added {{ "F95" | linkTechniques }}</li> + <li><time datetime="2018-11-13">13 Nov 2018</time>: Added {{ "C34" | linkTechniques }}</li> + <li><time datetime="2018-11-13">13 Nov 2018</time>: Added {{ "C36" | linkTechniques }}</li> + <li><time datetime="2018-11-13">13 Nov 2018</time>: Added {{ "C37" | linkTechniques }}</li> + <li><time datetime="2018-11-30">30 Nov 2018</time>: Added {{ "G207" | linkTechniques }}</li> + <li><time datetime="2018-11-30">30 Nov 2018</time>: Added {{ "F95" | linkTechniques }}</li> + <li><time datetime="2018-11-30">30 Nov 2018</time>: Added {{ "F96" | linkTechniques }}</li> + <li><time datetime="2018-11-30">30 Nov 2018</time>: Added {{ "C38" | linkTechniques }}</li> + <li><time datetime="2018-12-14">14 Dec 2018</time>: Added {{ "G207" | linkTechniques }}</li> +</ol> diff --git a/_includes/wai-site-footer.html b/_includes/wai-site-footer.html index fe7fabd0f1..9082c568b7 100644 --- a/_includes/wai-site-footer.html +++ b/_includes/wai-site-footer.html @@ -3,7 +3,8 @@ <p><strong>Date:</strong> Updated {{ page.date | date_to_long_string }}.</p> <p><strong>Developed by</strong> <a href="https://www.w3.org/groups/wg/ag/participants">Accessibility Guidelines Working Group (AG WG) Participants</a> - (Co-Chairs: Alastair Campbell, Charles Adams, Rachael Bradley Montgomery. W3C Staff Contact: Kevin White). + (Co-Chairs: Alastair Campbell, Charles Adams, Rachael Bradley Montgomery. W3C Staff Contact: + {% if version >= 22 -%} Kevin White {%- else -%} Michael Cooper {%- endif %}). </p> <p>The content was developed as part of the <a href="https://www.w3.org/WAI/about/projects/#us">WAI-Core projects</a> funded by U.S. Federal funds. diff --git a/acknowledgements/ag-contributors.html b/acknowledgements/ag-contributors.html index 4d1a2542cd..f3f57fcce5 100644 --- a/acknowledgements/ag-contributors.html +++ b/acknowledgements/ag-contributors.html @@ -1,4 +1,4 @@ <section id="ack_participants-previous"> - <h2>Other previously active WCAG WG participants and other contributors to WCAG 2.0, WCAG 2.1, or supporting resources </h2> + <h3>Other previously active WCAG WG participants and other contributors to WCAG 2.0, WCAG 2.1, or supporting resources </h3> <p>Paul Adam, Jenae Andershonis, Wilhelm Joys Andersen, Andrew Arch, Avi Arditti, Aries Arditi, Tom Babinszki, Mark Barratt, Mike Barta, Sandy Bartell, Kynn Bartlett, Chris Beer, Charles Belov, Marco Bertoni, Harvey Bingham, Chris Blouch, Paul Bohman, Frederick Boland, Denis Boudreau, Patrice Bourlon, Andy Brown, Dick Brown, Doyle Burnett, Raven Calais, Ben Caldwell, Tomas Caspers, Roberto Castaldo, Sofia Celic-Li, Sambhavi Chandrashekar, Mike Cherim, Jonathan Chetwynd, Wendy Chisholm, Alan Chuter, David M Clark, Joe Clark, Darcy Clarke, James Coltham, Earl Cousins, James Craig, Tom Croucher, Pierce Crowell, Nir Dagan, Daniel Dardailler, Geoff Deering, Sébastien Delorme, Pete DeVasto, Iyad Abu Doush, Sylvie Duchateau, Cherie Eckholm, Roberto Ellero, Don Evans, Gavin Evans, Neal Ewers, Steve Faulkner, Bengt Farre, Lainey Feingold, Wilco Fiers, Michel Fitos, Alan J. Flavell, Nikolaos Floratos, Kentarou Fukuda, Miguel Garcia, P.J. Gardner, Alistair Garrison, Greg Gay, Becky Gibson, Al Gilman, Kerstin Goldsmith, Michael Grade, Karl Groves, Loretta Guarino Reid, Jon Gunderson, Emmanuelle Gutiérrez y Restrepo, Brian Hardy, Eric Hansen, Benjamin Hawkes-Lewis, Sean Hayes, Shawn Henry, Hans Hillen, Donovan Hipke, Bjoern Hoehrmann, Allen Hoffman, Chris Hofstader, Yvette Hoitink, Martijn Houtepen, Carlos Iglesias, Richard Ishida, Jonas Jacek, Ian Jacobs, Phill Jenkins, Barry Johnson, Duff Johnson, Jyotsna Kaki, Shilpi Kapoor, Leonard R. Kasday, Kazuhito Kidachi, Ken Kipness, Johannes Koch, Marja-Riitta Koivunen, Maureen Kraft, Preety Kumar, Kristjan Kure, Andrew LaHart, Gez Lemon, Chuck Letourneau, Aurélien Levy, Harry Loots, Scott Luebking, Tim Lacy, Jim Ley, Alex Li, William Loughborough, N Maffeo, Mark Magennis, Erich Manser, Kapsi Maria, Luca Mascaro, Matt May, Sheena McCullagh, Liam McGee, Jens Oliver Meiert, Niqui Merret, Jonathan Metz, Alessandro Miele, Steven Miller, Mathew J Mirabella, Matt May, Marti McCuller, Sorcha Moore, Charles F. Munat, Robert Neff, Charles Nevile, Liddy Nevile, Dylan Nicholson, Bruno von Niman, Tim Noonan, Sebastiano Nutarelli, Graham Oliver, Sean B. Palmer, Charu Pandhi, evarshi Pant, Nigel Peck, Anne Pemberton, David Poehlman, Ian Pouncey, Charles Pritchard, Kerstin Probiesch, W Reagan, Adam Victor Reed, Chris Reeve, Chris Ridpath, Lee Roberts, Mark Rogers, Raph de Rooij, Gregory J. Rosmaita, Matthew Ross, Sharron Rush, Joel Sanda, Janina Sajka, Roberto Scano, Gordon Schantz, Tim van Schie, Wolf Schmidt, Stefan Schnabel, Cynthia Shelly, Glenda Sims, John Slatin, Becky Smith, Jared Smith, Andi Snow-Weaver, Neil Soiffer, Mike Squillace, Michael Stenitzer, Diane Stottlemyer, Christophe Strobbe, Sarah J Swierenga, Jim Thatcher, Terry Thompson, Justin Thorp, David Todd, Mary Utt, Jean Vanderdonckt, Carlos A Velasco, Eric Velleman, Gijs Veyfeyken, Dena Wainwright, Paul Walsch, Daman Wandke, Richard Warren, Elle Waters, Takayuki Watanabe, Gian Wild, David Wooley, Wu Wei, Kenny Zhang, Leona Zumbo.</p> -</section> \ No newline at end of file +</section> diff --git a/acknowledgements/ag-wg-active.html b/acknowledgements/ag-wg-active.html index 19cc2fd7ea..5fe6963c27 100644 --- a/acknowledgements/ag-wg-active.html +++ b/acknowledgements/ag-wg-active.html @@ -1,5 +1,5 @@ <section id="ack_participants-active"> - <h2>Participants of the AG WG active in the development of this document:</h2> + <h3>Participants of the AG WG active in the development of this document:</h3> <ul> <li>Jake Abma (Invited Expert)</li> <li>Shadi Abou-Zahra (Amazon)</li> diff --git a/acknowledgements/funders.html b/acknowledgements/funders.html index 7d1b5f9402..29e6be2e67 100644 --- a/acknowledgements/funders.html +++ b/acknowledgements/funders.html @@ -1,4 +1,4 @@ <section id="enabling-funders"> - <h2>Enabling funders</h2> + <h3>Enabling funders</h3> <p>This publication has been funded in part with U.S. Federal funds from the Health and Human Services, National Institute on Disability, Independent Living, and Rehabilitation Research (NIDILRR), initially under contract number ED-OSE-10-C-0067, then under contract number HHSP23301500054C, and now under HHS75P00120P00168. The content of this publication does not necessarily reflect the views or policies of the U.S. Department of Health and Human Services or the U.S. Department of Education, nor does mention of trade names, commercial products, or organizations imply endorsement by the U.S. Government.</p> </section> diff --git a/eleventy.config.ts b/eleventy.config.ts index fc9fe5ff69..d579a657ff 100644 --- a/eleventy.config.ts +++ b/eleventy.config.ts @@ -1,14 +1,22 @@ +import axios from "axios"; import compact from "lodash-es/compact"; +import { mkdirp } from "mkdirp"; import { rimraf } from "rimraf"; -import { copyFile } from "fs/promises"; +import { copyFile, writeFile } from "fs/promises"; +import { join } from "path"; import { CustomLiquid } from "11ty/CustomLiquid"; +import { resolveDecimalVersion } from "11ty/common"; import { actRules, assertIsWcagVersion, getFlatGuidelines, getPrinciples, + getPrinciplesForVersion, + getTermsMap, + scSlugOverrides, + type FlatGuidelinesMap, type Guideline, type Principle, type SuccessCriterion, @@ -43,18 +51,27 @@ const isTechniqueObsolete = (technique: Technique | undefined) => const isGuidelineObsolete = (guideline: Principle | Guideline | SuccessCriterion | undefined) => guideline?.type === "SC" && guideline.level === ""; -const principles = await getPrinciples(); -const flatGuidelines = getFlatGuidelines(principles); -const techniques = await getTechniquesByTechnology(); -const flatTechniques = getFlatTechniques(techniques); +/** Tree of Principles/Guidelines/SC across all versions (including later than selected) */ +const allPrinciples = await getPrinciples(); +/** Flattened Principles/Guidelines/SC across all versions (including later than selected) */ +const allFlatGuidelines = getFlatGuidelines(allPrinciples); -for (const [technology, list] of Object.entries(techniques)) { - // Prune obsolete techniques from ToC - techniques[technology as Technology] = list.filter( - (technique) => !technique.obsoleteSince || technique.obsoleteSince > version - ); +/** Tree of Principles/Guidelines/SC relevant to selected version */ +const principles = process.env.WCAG_VERSION + ? await getPrinciplesForVersion(version) + : allPrinciples; +/** Flattened Principles/Guidelines/SC relevant to selected version */ +const flatGuidelines = getFlatGuidelines(principles); +/** Flattened Principles/Guidelines/SC that only exist in later versions (to filter techniques) */ +const futureGuidelines: FlatGuidelinesMap = {}; +for (const [key, value] of Object.entries(allFlatGuidelines)) { + if (value.version > version) futureGuidelines[key] = value; } +const techniques = await getTechniquesByTechnology(flatGuidelines); +const flatTechniques = getFlatTechniques(techniques); + +/** Maps technique IDs to SCs found in target version */ const techniqueAssociations = await getTechniqueAssociations(flatGuidelines); for (const [id, associations] of Object.entries(techniqueAssociations)) { // Prune associations from non-obsolete techniques to obsolete SCs @@ -62,14 +79,37 @@ for (const [id, associations] of Object.entries(techniqueAssociations)) { ({ criterion }) => criterion.level !== "" || isTechniqueObsolete(flatTechniques[id]) ); } +/** Maps technique IDs to SCs only found in later versions */ +const futureTechniqueAssociations = await getTechniqueAssociations(futureGuidelines); +/** Subset of futureTechniqueAssociations not overlapping with techniqueAssociations */ +const futureExclusiveTechniqueAssociations: typeof techniqueAssociations = {}; + +for (const [id, associations] of Object.entries(futureTechniqueAssociations)) { + if (!techniqueAssociations[id]) futureExclusiveTechniqueAssociations[id] = associations; +} +const skippedTechniques = Object.keys(futureExclusiveTechniqueAssociations).sort().join(", "); +if (skippedTechniques) + console.log(`Skipping techniques that only reference later-version SCs: ${skippedTechniques}`); + +for (const [technology, list] of Object.entries(techniques)) { + // Prune techniques that are obsolete or associated with SCs from later versions + // (only prune hierarchical structure for ToC; keep all in flatTechniques for lookups) + techniques[technology as Technology] = list.filter( + (technique) => + (!technique.obsoleteSince || technique.obsoleteSince > version) && + !futureExclusiveTechniqueAssociations[technique.id] + ); +} const understandingDocs = await getUnderstandingDocs(version); const understandingNav = await generateUnderstandingNavMap(principles, understandingDocs); +const termsMap = process.env.WCAG_VERSION ? await getTermsMap(version) : await getTermsMap(); + // Declare static global data up-front so we can build typings from it const globalData = { version, - versionDecimal: version.split("").join("."), + versionDecimal: resolveDecimalVersion(version), techniques, // Used for techniques/index.html technologies, // Used for techniques/index.html technologyTitles, // Used for techniques/index.html @@ -108,6 +148,15 @@ if (process.env.WCAG_MODE === "editors") { baseUrls.understanding = `https://www.w3.org/WAI/WCAG${version}/Understanding/`; } +/** Applies any overridden SC IDs to incoming Understanding fileSlugs */ +function resolveUnderstandingFileSlug(fileSlug: string) { + if (fileSlug in scSlugOverrides) { + assertIsWcagVersion(version); + return scSlugOverrides[fileSlug](version); + } + return fileSlug; +} + export default function (eleventyConfig: any) { for (const [name, value] of Object.entries(globalData)) eleventyConfig.addGlobalData(name, value); @@ -124,13 +173,22 @@ export default function (eleventyConfig: any) { // we have access to typings here, and can keep the latter fully static. eleventyConfig.addGlobalData("eleventyComputed", { // permalink determines output structure; see https://www.11ty.dev/docs/permalinks/ - permalink: ({ page, isUnderstanding }: GlobalData) => { + permalink: ({ page, isTechniques, isUnderstanding }: GlobalData) => { if (page.inputPath === "./index.html" && process.env.WCAG_MODE) return false; - if (isUnderstanding) { + if (isTechniques) { + if (futureExclusiveTechniqueAssociations[page.fileSlug]) return false; + } else if (isUnderstanding) { // understanding-metadata.html exists in 2 places; top-level wins in XSLT process if (/\/20\/understanding-metadata/.test(page.inputPath)) return false; - // Flatten pages into top-level directory, out of version subdirectories - return page.inputPath.replace(/\/2\d\//, "/"); + + if (page.fileSlug in allFlatGuidelines) { + // Exclude files not present in the version being built + if (!flatGuidelines[resolveUnderstandingFileSlug(page.fileSlug)]) return false; + + // Flatten pages into top-level directory, out of version subdirectories. + // Revise any filename that differs between versions, reusing data from guidelines.ts + return `understanding/${resolveUnderstandingFileSlug(page.fileSlug)}.html`; + } } // Preserve existing structure: write to x.html instead of x/index.html return page.inputPath; @@ -147,13 +205,14 @@ export default function (eleventyConfig: any) { // Data for individual technique pages technique: ({ page, isTechniques }: GlobalData) => + // Reference unfiltered map to avoid breaking non-emitted (but still processed) pages isTechniques ? flatTechniques[page.fileSlug] : null, techniqueAssociations: ({ page, isTechniques }: GlobalData) => isTechniques ? techniqueAssociations[page.fileSlug] : null, // Data for individual understanding pages guideline: ({ page, isUnderstanding }: GlobalData) => - isUnderstanding ? flatGuidelines[page.fileSlug] : null, + isUnderstanding ? flatGuidelines[resolveUnderstandingFileSlug(page.fileSlug)] : null, }); // See https://www.11ty.dev/docs/copy/#emulate-passthrough-copy-during-serve @@ -184,7 +243,31 @@ export default function (eleventyConfig: any) { eleventyConfig.on("eleventy.after", async ({ dir }: EleventyEvent) => { // addPassthroughCopy can only map each file once, // but base.css needs to be copied to a 2nd destination - await copyFile(`${dir.input}/css/base.css`, `${dir.output}/understanding/base.css`); + await copyFile( + join(dir.input, "css", "base.css"), + join(dir.output, "understanding", "base.css") + ); + + // Output guidelines/index.html and dependencies for PR runs (not for GH Pages or W3C site) + const sha = process.env.COMMIT_REF; // Read environment variable exposed by Netlify + if (sha && !process.env.WCAG_MODE) { + await mkdirp(join(dir.output, "guidelines")); + await copyFile( + join(dir.input, "guidelines", "guidelines.css"), + join(dir.output, "guidelines", "guidelines.css") + ); + await copyFile( + join(dir.input, "guidelines", "relative-luminance.html"), + join(dir.output, "guidelines", "relative-luminance.html") + ); + + const url = `https://raw.githack.com/${GH_ORG}/${GH_REPO}/${sha}/guidelines/index.html?isPreview=true`; + const { data: processedGuidelines } = await axios.get( + `https://labs.w3.org/spec-generator/?type=respec&url=${encodeURIComponent(url)}`, + { responseType: "text" } + ); + await writeFile(`${dir.output}/guidelines/index.html`, processedGuidelines); + } }); eleventyConfig.setLibrary( @@ -194,6 +277,7 @@ export default function (eleventyConfig: any) { root: ["_includes", "."], jsTruthy: true, strictFilters: true, + termsMap, }) ); @@ -219,7 +303,7 @@ export default function (eleventyConfig: any) { !isGuidelineObsolete(flatGuidelines[this.page.fileSlug]) ) { if (process.env.WCAG_VERBOSE) { - const since = technique.obsoleteSince!.split("").join("."); + const since = resolveDecimalVersion(technique.obsoleteSince!); console.warn( `linkTechniques in ${this.page.inputPath}: ` + `skipping obsolete technique ${id} (as of ${since})` @@ -227,6 +311,21 @@ export default function (eleventyConfig: any) { } return; } + // Same for techniques only introduced in later WCAG versions + if ( + technique.id in futureExclusiveTechniqueAssociations && + !futureExclusiveTechniqueAssociations[this.page.fileSlug] && + (!allFlatGuidelines[this.page.fileSlug] || + allFlatGuidelines[this.page.fileSlug].version <= version) + ) { + if (process.env.WCAG_VERBOSE) { + console.warn( + `linkTechniques in ${this.page.inputPath}: ` + + `skipping future-version technique ${id}` + ); + } + return; + } // Support relative technique links from other techniques or from techniques/index.html, // otherwise path-absolute when cross-linked from understanding/* diff --git a/guidelines/guidelines.css b/guidelines/guidelines.css index 2b29e5330a..889a6ab499 100644 --- a/guidelines/guidelines.css +++ b/guidelines/guidelines.css @@ -3,7 +3,13 @@ } .change { - display:inline; + display: inline; + color: #fff; + background: #005A9C; + border-radius: 0.25em; + padding: 0.25em 0.4em; + margin: 0 0.25em 0 0; + font-weight: bold; } .new { diff --git a/guidelines/index.html b/guidelines/index.html index 8402db4640..a5a7e668a5 100644 --- a/guidelines/index.html +++ b/guidelines/index.html @@ -13,14 +13,14 @@ </head> <body> <section id="abstract"> - <p>Web Content Accessibility Guidelines (WCAG) 2.2 covers a wide range of recommendations for making Web content more accessible. Following these guidelines will make content more accessible to a wider range of people with disabilities, including accommodations for blindness and low vision, deafness and hearing loss, limited movement, speech disabilities, photosensitivity, and combinations of these, and some accommodation for learning disabilities and cognitive limitations; but will not address every user need for people with these disabilities. These guidelines address accessibility of web content on desktops, laptops, tablets, and mobile devices. Following these guidelines will also often make Web content more usable to users in general.</p> + <p>Web Content Accessibility Guidelines (WCAG) 2.2 covers a wide range of recommendations for making web content more accessible. Following these guidelines will make content more accessible to a wider range of people with disabilities, including accommodations for blindness and low vision, deafness and hearing loss, limited movement, speech disabilities, photosensitivity, and combinations of these, and some accommodation for learning disabilities and cognitive limitations; but will not address every user need for people with these disabilities. These guidelines address accessibility of web content on any kind of device (including desktops, laptops, kiosks, and mobile devices). Following these guidelines will also often make web content more usable to users in general.</p> <p>WCAG 2.2 success criteria are written as testable statements that are not technology-specific. Guidance about satisfying the success criteria in specific technologies, as well as general information about interpreting the success criteria, is provided in separate documents. See <a href="https://www.w3.org/WAI/standards-guidelines/wcag/">Web Content Accessibility Guidelines (WCAG) Overview</a> for an introduction and links to WCAG technical and educational material.</p> - <p>WCAG 2.2 extends <a href="https://www.w3.org/TR/WCAG21/">Web Content Accessibility Guidelines 2.1</a> [[WCAG21]], which was published as a W3C Recommendation June 2018. Content that conforms to WCAG 2.2 also conforms to WCAG 2.0 and WCAG 2.1. The WG intends that for policies requiring conformance to WCAG 2.0 or WCAG 2.1, WCAG 2.2 can provide an alternate means of conformance. The publication of WCAG 2.2 does not deprecate or supersede WCAG 2.0 or WCAG 2.1. While WCAG 2.0 and WCAG 2.1 remain W3C Recommendations, the W3C advises the use of WCAG 2.2 to maximize future applicability of accessibility efforts. The W3C also encourages use of the most current version of WCAG when developing or updating Web accessibility policies.</p> + <p>WCAG 2.2 extends <a href="https://www.w3.org/TR/WCAG21/">Web Content Accessibility Guidelines 2.1</a> [[WCAG21]], which was published as a W3C Recommendation June 2018. Content that conforms to WCAG 2.2 also conforms to WCAG 2.0 and WCAG 2.1. The WG intends that for policies requiring conformance to WCAG 2.0 or WCAG 2.1, WCAG 2.2 can provide an alternate means of conformance. The publication of WCAG 2.2 does not deprecate or supersede WCAG 2.0 or WCAG 2.1. While WCAG 2.0 and WCAG 2.1 remain W3C Recommendations, the W3C advises the use of WCAG 2.2 to maximize future applicability of accessibility efforts. The W3C also encourages use of the most current version of WCAG when developing or updating web accessibility policies.</p> </section> <section id="sotd"> <p>To comment, <a href="https://github.com/w3c/wcag/issues/new">file an issue in the <abbr title="World Wide Web Consortium">W3C</abbr> WCAG GitHub repository</a>. - Although the proposed Success Criteria in this document reference issues tracking + Although the proposed success criteria in this document reference issues tracking discussion, the Working Group requests that public comments be filed as new issues, one issue per discrete comment. It is free to create a GitHub account to file issues. If filing issues in GitHub is not feasible, send email to <a href="mailto:public-agwg-comments@w3.org?subject=WCAG%202.2%20public%20comment">public-agwg-comments@w3.org</a> (<a href="https://lists.w3.org/Archives/Public/public-agwg-comments/">comment archive</a>).</p> @@ -29,12 +29,12 @@ <h2>Introduction</h2> <section id="background-on-wcag-2"> <h3>Background on WCAG 2</h3> - <p>Web Content Accessibility Guidelines (WCAG) 2.2 defines how to make Web content more accessible to people with disabilities. Accessibility involves a wide range of disabilities, including visual, auditory, physical, speech, cognitive, language, learning, and neurological disabilities. Although these guidelines cover a wide range of issues, they are not able to address the needs of people with all types, degrees, and combinations of disability. These guidelines also make Web content more usable by older individuals with changing abilities due to aging and often improve usability for users in general.</p> - <p>WCAG 2.2 is developed through the <a href="https://www.w3.org/WAI/standards-guidelines/w3c-process/">W3C process</a> in cooperation with individuals and organizations around the world, with a goal of providing a shared standard for Web content accessibility that meets the needs of individuals, organizations, and governments internationally. WCAG 2.2 builds on WCAG 2.0 [[WCAG20]] and WCAG 2.1 [[WCAG21]], which in turn built on WCAG 1.0 [[WAI-WEBCONTENT]] and is designed to apply broadly to different Web technologies now and in the future, and to be testable with a combination of automated testing and human evaluation. For an introduction to WCAG, see the <a href="https://www.w3.org/WAI/standards-guidelines/wcag/">Web Content Accessibility Guidelines (WCAG) Overview</a>.</p> + <p>Web Content Accessibility Guidelines (WCAG) 2.2 defines how to make web content more accessible to people with disabilities. Accessibility involves a wide range of disabilities, including visual, auditory, physical, speech, cognitive, language, learning, and neurological disabilities. Although these guidelines cover a wide range of issues, they are not able to address the needs of people with all types, degrees, and combinations of disability. These guidelines also make web content more usable by older individuals with changing abilities due to aging and often improve usability for users in general.</p> + <p>WCAG 2.2 is developed through the <a href="https://www.w3.org/WAI/standards-guidelines/w3c-process/">W3C process</a> in cooperation with individuals and organizations around the world, with a goal of providing a shared standard for web content accessibility that meets the needs of individuals, organizations, and governments internationally. WCAG 2.2 builds on WCAG 2.0 [[WCAG20]] and WCAG 2.1 [[WCAG21]], which in turn built on WCAG 1.0 [[WAI-WEBCONTENT]] and is designed to apply broadly to different web technologies now and in the future, and to be testable with a combination of automated testing and human evaluation. For an introduction to WCAG, see the <a href="https://www.w3.org/WAI/standards-guidelines/wcag/">Web Content Accessibility Guidelines (WCAG) Overview</a>.</p> <p>Significant challenges were encountered in defining additional criteria to address cognitive, language, and learning disabilities, including a short timeline for development as well as challenges in reaching consensus on testability, implementability, and international considerations of proposals. Work will carry on in this area in future versions of WCAG. We encourage authors to refer to our supplemental guidance on <a href="https://www.w3.org/WAI/standards-guidelines/wcag/#supplement">improving inclusion for people with disabilities, including learning and cognitive disabilities, people with low-vision, and more</a>.</p> - <p>Web accessibility depends not only on accessible content but also on accessible Web browsers and other user agents. Authoring tools also have an important role in Web accessibility. For an overview of how these components of Web development and interaction work together, see:</p> + <p>Web accessibility depends not only on accessible content but also on accessible web browsers and other user agents. Authoring tools also have an important role in web accessibility. For an overview of how these components of web development and interaction work together, see:</p> <ul> <li><strong><a href="https://www.w3.org/WAI/fundamentals/components/">Essential Components of Web Accessibility</a></strong></li> <li><strong><a href="https://www.w3.org/WAI/standards-guidelines/uaag/">User Agent Accessibility Guidelines (UAAG) Overview</a></strong></li> @@ -44,10 +44,10 @@ <h3>Background on WCAG 2</h3> </section> <section id="wcag-2-layers-of-guidance"> <h3>WCAG 2 Layers of Guidance</h3> - <p>The individuals and organizations that use WCAG vary widely and include Web designers and developers, policy makers, purchasing agents, teachers, and students. In order to meet the varying needs of this audience, several layers of guidance are provided including overall <em>principles</em>, general <em>guidelines</em>, testable <em>success criteria</em> and a rich collection of <em>sufficient techniques</em>, <em>advisory techniques</em>, and <em>documented common failures</em> with examples, resource links and code.</p> + <p>The individuals and organizations that use WCAG vary widely and include web designers and developers, policy makers, purchasing agents, teachers, and students. In order to meet the varying needs of this audience, several layers of guidance are provided including overall <em>principles</em>, general <em>guidelines</em>, testable <em>success criteria</em> and a rich collection of <em>sufficient techniques</em>, <em>advisory techniques</em>, and <em>documented common failures</em> with examples, resource links and code.</p> <ul> <li> - <p><strong>Principles</strong> - At the top are four principles that provide the foundation for Web accessibility: <em>perceivable, operable, understandable, and robust</em>. See also <a href="https://www.w3.org/WAI/WCAG22/Understanding/intro#understanding-the-four-principles-of-accessibility">Understanding the Four Principles of Accessibility</a>.</p> + <p><strong>Principles</strong> - At the top are four principles that provide the foundation for web accessibility: <em>perceivable, operable, understandable, and robust</em>. See also <a href="https://www.w3.org/WAI/WCAG22/Understanding/intro#understanding-the-four-principles-of-accessibility">Understanding the Four Principles of Accessibility</a>.</p> </li> <li> <p><strong>Guidelines</strong> - Under the principles are guidelines. The 13 guidelines provide the basic goals that authors should work toward in order to make content more accessible to users with different disabilities. The guidelines are not testable, but provide the framework and overall objectives to help authors understand the success criteria and better implement the techniques.</p> @@ -60,14 +60,14 @@ <h3>WCAG 2 Layers of Guidance</h3> </li> </ul> <p>All of these layers of guidance (principles, guidelines, success criteria, and sufficient and advisory techniques) work together to provide guidance on how to make content more accessible. Authors are encouraged to view and apply all layers that they are able to, including the advisory techniques, in order to best address the needs of the widest possible range of users.</p> - <p>Note that even content that conforms at the highest level (AAA) will not be accessible to individuals with all types, degrees, or combinations of disability, particularly in the cognitive, language, and learning areas. Authors are encouraged to consider the full range of techniques, including the advisory techniques, <a href="https://www.w3.org/TR/coga-usable/">Making Content Usable for People with Cognitive and Learning Disabilities</a>, as well as to seek relevant advice about current best practice to ensure that Web content is accessible, as far as possible, to this community. <a href="https://www.w3.org/WAI/WCAG22/Understanding/understanding-metadata">Metadata</a> may assist users in finding content most suitable for their needs. </p> + <p>Note that even content that conforms at the highest level (AAA) will not be accessible to individuals with all types, degrees, or combinations of disability, particularly in the cognitive, language, and learning areas. Authors are encouraged to consider the full range of techniques, including the advisory techniques, <a href="https://www.w3.org/TR/coga-usable/">Making Content Usable for People with Cognitive and Learning Disabilities</a>, as well as to seek relevant advice about current best practice to ensure that web content is accessible, as far as possible, to this community. <a href="https://www.w3.org/WAI/WCAG22/Understanding/understanding-metadata">Metadata</a> may assist users in finding content most suitable for their needs. </p> </section> <section id="wcag-2-2-supporting-documents"> <h3>WCAG 2.2 Supporting Documents</h3> <p>The WCAG 2.2 document is designed to meet the needs of those who need a stable, referenceable technical standard. Other documents, called supporting documents, are based on the WCAG 2.2 document and address other important purposes, including the ability to be updated to describe how WCAG would be applied with new technologies. Supporting documents include: </p> <ol class="enumar"> <li> - <p><strong><a href="https://www.w3.org/WAI/WCAG22/quickref/">How to Meet WCAG 2.2</a></strong> - A customizable quick reference to WCAG 2.2 that includes all of the guidelines, success criteria, and techniques for authors to use as they are developing and evaluating Web content. This includes content from WCAG 2.0, 2.1 2.2 and can be filtered in many ways to help authors focus on relevant content.</p> + <p><strong><a href="https://www.w3.org/WAI/WCAG22/quickref/">How to Meet WCAG 2.2</a></strong> - A customizable quick reference to WCAG 2.2 that includes all of the guidelines, success criteria, and techniques for authors to use as they are developing and evaluating web content. This includes content from WCAG 2.0, 2.1, and 2.2, and can be filtered in many ways to help authors focus on relevant content.</p> </li> <li> <p><strong><a href="https://www.w3.org/WAI/WCAG22/Understanding/">Understanding WCAG 2.2</a></strong> - A guide to understanding and implementing WCAG 2.2. There is a short "Understanding" document for each guideline and success criterion in WCAG 2.2 as well as key topics.</p> @@ -80,7 +80,7 @@ <h3>WCAG 2.2 Supporting Documents</h3> </li> <li><p><strong><a href="https://www.w3.org/WAI/standards-guidelines/wcag/new-in-22/">What's New in WCAG 2.2</a></strong> introduces the new success criteria with persona quotes that illustrate the accessibility issues. </p></li> </ol> - <p>See <a href="https://www.w3.org/WAI/standards-guidelines/wcag/">Web Content Accessibility Guidelines (WCAG) Overview</a> for a description of the WCAG 2.2 supporting material, including education resources related to WCAG 2. Additional resources covering topics such as the business case for Web accessibility, planning implementation to improve the accessibility of Web sites, and accessibility policies are listed in <a href="https://www.w3.org/WAI/Resources/Overview">WAI Resources</a>.</p> + <p>See <a href="https://www.w3.org/WAI/standards-guidelines/wcag/">Web Content Accessibility Guidelines (WCAG) Overview</a> for a description of the WCAG 2.2 supporting material, including education resources related to WCAG 2. Additional resources covering topics such as the business case for web accessibility, planning implementation to improve the accessibility of websites, and accessibility policies are listed in <a href="https://www.w3.org/WAI/Resources/Overview">WAI Resources</a>.</p> </section> <section id="requirements-for-wcag-2-2"> <h3>Requirements for WCAG 2.2</h3> @@ -336,7 +336,7 @@ <h3>Readable</h3> <section class="guideline" id="predictable"> <h3>Predictable</h3> - <p>Make Web pages appear and operate in predictable ways.</p> + <p>Make web pages appear and operate in predictable ways.</p> <section data-include="sc/20/on-focus.html" data-include-replace="true"></section> @@ -408,35 +408,35 @@ <h2>Interpreting Normative Requirements</h2> <section id="conformance-reqs"> <h2>Conformance Requirements</h2> - <p>In order for a Web page to conform to WCAG 2.2, all of the following conformance requirements must be satisfied:</p> + <p>In order for a web page to conform to WCAG 2.2, all of the following conformance requirements must be satisfied:</p> <!-- This section is quoted in Understanding Conformance. If updated, the update needs to be copied there. --> <section id="cc1"> <h3>Conformance Level</h3> <p>One of the following levels of conformance is met in full.</p> <ul> - <li id="cc1_A">For Level A conformance (the minimum level of conformance), the <a>Web page</a> - <a>satisfies</a> all the Level A Success Criteria, or a <a>conforming alternate version</a> is provided.</li> - <li id="cc1_AA">For Level AA conformance, the Web page satisfies all the Level A and Level AA Success Criteria, or a Level AA conforming alternate version is provided.</li> - <li id="cc1_AAA">For Level AAA conformance, the Web page satisfies all the Level A, Level AA and Level AAA Success Criteria, or a Level AAA conforming alternate version is provided.</li> + <li id="cc1_A">For Level A conformance (the minimum level of conformance), the <a>web page</a> + <a>satisfies</a> all the Level A success criteria, or a <a>conforming alternate version</a> is provided.</li> + <li id="cc1_AA">For Level AA conformance, the web page satisfies all the Level A and Level AA success criteria, or a Level AA conforming alternate version is provided.</li> + <li id="cc1_AAA">For Level AAA conformance, the web page satisfies all the Level A, Level AA and Level AAA success criteria, or a Level AAA conforming alternate version is provided.</li> </ul> <p class="note">Although conformance can only be achieved at the stated levels, authors are encouraged to report (in their claim) any progress toward meeting success criteria from all levels beyond the achieved level of conformance.</p> - <p class="note">It is not recommended that Level AAA conformance be required as a general policy for entire sites because it is not possible to satisfy all Level AAA Success Criteria for some content.</p> + <p class="note">It is not recommended that Level AAA conformance be required as a general policy for entire sites because it is not possible to satisfy all Level AAA success criteria for some content.</p> </section> <!-- This section is quoted in Understanding Conformance. If updated, the update needs to be copied there. --> <section id="cc2"> <h3>Full pages</h3> - <p><a>Conformance</a> (and conformance level) is for full <a>Web page(s)</a> only, and cannot be achieved if part of a Web page is excluded.</p> + <p><a>Conformance</a> (and conformance level) is for full <a>web page(s)</a> only, and cannot be achieved if part of a web page is excluded.</p> <p class="note">For the purpose of determining conformance, alternatives to part of a page's content are considered part of the page when the alternatives can be obtained directly from the page, e.g., a long description or an alternative presentation of a video.</p> - <p class="note">Authors of Web pages that cannot conform due to content outside of the author's control may consider a <a href="#conformance-partial">Statement of Partial Conformance</a>.</p> - <p class="note">A full page includes each variation of the page that is automatically presented by the page for various screen sizes (e.g. variations in a responsive Web page). Each of these variations needs to conform (or needs to have a conforming alternate version) in order for the entire page to conform.</p> + <p class="note">Authors of web pages that cannot conform due to content outside of the author's control may consider a <a href="#conformance-partial">Statement of Partial Conformance</a>.</p> + <p class="note">A full page includes each variation of the page that is automatically presented by the page for various screen sizes (e.g. variations in a responsive web page). Each of these variations needs to conform (or needs to have a conforming alternate version) in order for the entire page to conform.</p> </section> <!-- This section is quoted in Understanding Conformance. If updated, the update needs to be copied there. --> <section id="cc3"> <h3>Complete processes</h3> - <p>When a <a>Web page</a> is one of a series of Web pages presenting a <a>process</a> (i.e., a sequence of steps that need to be completed in order to accomplish an activity), all Web pages in the process conform at the specified level or better. (Conformance is not possible at a particular level if any page in the process does not conform at that level or better.)</p> + <p>When a <a>web page</a> is one of a series of web pages presenting a <a>process</a> (i.e., a sequence of steps that need to be completed in order to accomplish an activity), all web pages in the process conform at the specified level or better. (Conformance is not possible at a particular level if any page in the process does not conform at that level or better.)</p> <aside class="example"><p>An online store has a series of pages that are used to select and purchase products. All pages in the series from start to finish (checkout) conform in order for any page that is part of the process to conform.</p></aside> </section> @@ -451,7 +451,7 @@ <h3>Only Accessibility-Supported Ways of Using Technologies</h3> <!-- This section is quoted in Understanding Conformance. If updated, the update needs to be copied there. --> <section id="cc5"> <h3>Non-Interference</h3> - <p>If <a> technologies </a> are used in a way that is not <a>accessibility supported</a>, or if they are used in a non-conforming way, then they do not block the ability of users to access the rest of the page. In addition, the <a>Web page</a> as a whole continues to meet the conformance requirements under each of the following conditions:</p> + <p>If <a> technologies </a> are used in a way that is not <a>accessibility supported</a>, or if they are used in a non-conforming way, then they do not block the ability of users to access the rest of the page. In addition, the <a>web page</a> as a whole continues to meet the conformance requirements under each of the following conditions:</p> <ol> <li>when any technology that is not <a>relied upon</a> is turned on in a user agent,</li> <li>when any technology that is not relied upon is turned off in a user agent, and</li> @@ -473,7 +473,7 @@ <h3>Non-Interference</h3> <section id="conformance-claims"> <h2>Conformance Claims (Optional) </h2> - <p>Conformance is defined only for <a>Web pages</a>. However, a conformance claim may be made to cover one page, a series of pages, or multiple related Web pages.</p> + <p>Conformance is defined only for <a>web pages</a>. However, a conformance claim may be made to cover one page, a series of pages, or multiple related web pages.</p> <section id="conformance-required"> <h3>Required Components of a Conformance Claim</h3> @@ -483,12 +483,12 @@ <h3>Required Components of a Conformance Claim</h3> <li><strong>Guidelines title, version and URI </strong> "Web Content Accessibility Guidelines 2.2 at <a href="https://www.w3.org/TR/WCAG22/">https://www.w3.org/TR/WCAG22/</a>"</li> <li><strong>Conformance level</strong> satisfied: (Level A, AA or AAA)</li> <li> - <p><strong>A concise description of the Web pages</strong>, such as a list of URIs for which the claim is made, including whether subdomains are included in the claim.</p> - <p class="note">The Web pages may be described by list or by an expression that describes all of the URIs included in the claim.</p> - <p class="note">Web-based products that do not have a URI prior to installation on the customer's Web site may have a statement that the product would conform when installed.</p> + <p><strong>A concise description of the web pages</strong>, such as a list of URIs for which the claim is made, including whether subdomains are included in the claim.</p> + <p class="note">The web pages may be described by list or by an expression that describes all of the URIs included in the claim.</p> + <p class="note">Web-based products that do not have a URI prior to installation on the customer's website may have a statement that the product would conform when installed.</p> </li> <li>A list of the <strong> - <a>Web content technologies</a> + <a>web content technologies</a> <a>relied upon</a></strong>.</li> </ol> <p class="note">If a conformance logo is used, it would constitute a claim and must be accompanied by the required components of a conformance claim listed above.</p> @@ -539,8 +539,8 @@ <h2>Statement of Partial Conformance - Language</h2> <section class="informative" id="privacy-summary"> <h2>Privacy Considerations</h2> - <p>Success Criteria within this specification which the Working Group has identified possible implications for privacy, either by providing protections for end users or which are important for web site providers to take in to consideration when implementing features designed to protect user privacy, are listed below. This list reflects the current understanding of the Working Group but other Success Criteria may have privacy implications that the Working Group is not aware of at the time of publishing.</p> - <p>Success Criteria within this specification that may relate to privacy are:</p> + <p>Success criteria within this specification which the Working Group has identified possible implications for privacy, either by providing protections for end users or which are important for website providers to take in to consideration when implementing features designed to protect user privacy, are listed below. This list reflects the current understanding of the Working Group but other Success criteria may have privacy implications that the Working Group is not aware of at the time of publishing.</p> + <p>Success criteria within this specification that may relate to privacy are:</p> <ul> <li><a href="#timeouts">2.2.6 Timeouts (AAA)</a></li> <li><a href="#redundant-entry">3.3.7 Redundant Entry (A)</a></li> @@ -550,8 +550,8 @@ <h2>Privacy Considerations</h2> <section class="informative" id="security-summary"> <h2>Security Considerations</h2> - <p>Success Criteria within this specification which the Working Group has identified possible implications for security, either by providing protections for end users or which are important for web site providers to take in to consideration when implementing features designed to protect user security, are listed below. This list reflects the current understanding of the Working Group but other Success Criteria may have security implications that the Working Group is not aware of at the time of publishing.</p> - <p>Success Criteria within this specification that may relate to security are:</p> + <p>Success criteria within this specification which the Working Group has identified possible implications for security, either by providing protections for end users or which are important for website providers to take in to consideration when implementing features designed to protect user security, are listed below. This list reflects the current understanding of the Working Group but other Success criteria may have security implications that the Working Group is not aware of at the time of publishing.</p> + <p>Success criteria within this specification that may relate to security are:</p> <ul> <li><a href="#non-text-content">1.1.1 Non-text Content (A)</a></li> <li><a href="#identify-input-purpose">1.3.5 Identify Input Purpose (AA)</a></li> @@ -622,8 +622,6 @@ <h1>Glossary</h1> <dt data-include="terms/20/emergency.html" data-include-replace="true"></dt> - <dt data-include="terms/22/encloses.html" data-include-replace="true"></dt> - <dt data-include="terms/20/essential.html" data-include-replace="true"></dt> <dt data-include="terms/20/extended-audio-description.html" data-include-replace="true"></dt> @@ -783,24 +781,30 @@ <h1>Glossary</h1> <section class="appendix" id="changelog"> <h2>Change Log</h2> - <p>This section shows substantive changes made in WCAG 2.2 since WCAG 2.1. <a href="https://www.w3.org/WAI/WCAG21/errata/">Errata fixes to WCAG 2.1</a> have also been incorporated into WCAG 2.2.</p> + <p>This section shows substantive changes incorporated into WCAG 2.2 since WCAG 2.1, as well as changes made to 2.2 since its original publication on 05 October 2023. <a href="https://www.w3.org/WAI/WCAG21/errata/">Errata fixes to WCAG 2.1</a> have also been incorporated into WCAG 2.2.</p> <p>The full <a href="https://github.com/w3c/wcag/commits/main/guidelines">commit history to WCAG 2.2</a> is available.</p> <ul> - <li>2019-11-10: Promoted <a href="#focus-visible">Focus Visible</a> from Level AA to Level A.</li> - <li>2020-01-14: Added <q>Focus Visible (Enhanced)</q>, later renamed to Focus Appearance (Enhanced), later removed.</li> - <li>2020-03-10: Renamed <q>Pointer Target Spacing</q> to <q>Target Size (Minimum)</q></li> <li>2020-03-30: Added <a href="#accessible-authentication-minimum">Accessible Authentication (Minimum)</a>.</li> <li>2020-05-27: Added <q>Dragging</q> (later renamed <a href="#dragging-movements">Dragging Movements</a>).</li> - <li>2020-07-19: Added <q>Findable Help</q> (later renamed to <a href="#consistent-help">Consistent Help</a>), <q>Fixed Reference Points</q> (Page Break Navigation), <q>Hidden Controls</q> (later renamed Visible Controls), <q>Pointer Target Spacing</q> (later renamed <a href="#target-size-minimum">Target Size (Minimum)</a>), <a href="#redundant-entry">Redundant Entry</a>.</li> - <li>2020-08-04: Added Focus Appearance (Minimum) (later renamed to <a href="#focus-appearance">Focus Appearance</a>) and renamed <q>Focus Visible (Enhanced)</q> to <q>Focus Appearance (Enhanced)</q>.</li> - <li>2020-11-02: Renamed <q>Dragging</q> to <a href="#dragging-movements">Dragging Movements</a>.</li> - <li>2020-12-08: Renamed <q>Hidden Controls</q> to Visible Controls.</li> - <li>2021-09-21: Added <a href="#accessible-authentication-enhanced">Accessible Authentication (No Exception)</a>.</li> + <li>2020-07-19: Added <q>Findable Help</q> (later renamed to <a href="#consistent-help">Consistent Help</a>), <q>Pointer Target Spacing</q> (later renamed <a href="#target-size-minimum">Target Size (Minimum)</a>), and <a href="#redundant-entry">Redundant Entry</a>.</li> + <li>2020-08-04: Added <q>Focus Appearance (Minimum)</q> (later renamed to <a href="#focus-appearance">Focus Appearance</a>).</li> + <li>2021-09-21: Added <q>Accessible Authentication (No Exception)</q> (later renamed <a href="#accessible-authentication-enhanced">Accessible Authentication (Enhanced))</a>.</li> <li>2022-03-22: Added <a href="#focus-not-obscured-minimum">Focus Not Obscured (Minimum)</a>.</li> - <li>2022-05-13: Removed Visible Controls.</li> <li>2022-05-30: Added <a href="#focus-not-obscured-enhanced">Focus Not Obscured (Enhanced)</a>.</li> - <li>2022-07-15: Removed Page Break Navigation.</li> <li>2023-06-05: Added privacy and security sections within conformance.</li> + <li>2024-12-1w: Republished WCAG 2.2, incorporating the following errata: + <ul> + <li>modified the definitions of <a>single pointer</a>, <a>used in an unusual or restricted way</a>, <a>motion animation</a>, and <a>programmatically determined</a></li> + <li>modified the formatting of definitions for <a>changes of context</a>, <a>general flash and red flash thresholds</a>, <a>cognitive function test</a>, and <a>structure</a></li> + <li>removed the defunct <q>encloses</q> definition</li> + <li>corrected typo in <a href="#input-purposes">input purposes</a> list</li> + <li>modified the formatting of Target Size (Minimum) and Accessible Authentication (Minimum)</li> + <li>modified the visual presentation for content identified as New</li> + <li>modified the language covering devices in the <a href="#abstract">Abstract</a></li> + <li>made editorial changes to improve consistent use of definitions in the success criteria</li> + <li>made editorial changes to improve consistent use of the terms <q>success criteria/criterion</q>, <q>web</q>, <q>website</q>, and <q>web page</q></li> + </ul> + </li> </ul> </section> <section class="appendix informative section" id="acknowledgements"> diff --git a/guidelines/input-purposes.html b/guidelines/input-purposes.html index b83e94c842..8c6baf14ad 100644 --- a/guidelines/input-purposes.html +++ b/guidelines/input-purposes.html @@ -2,64 +2,64 @@ <h2>Input Purposes for User Interface Components</h2> <p>This section contains a listing of common <a>user interface component</a> input purposes. The terms below are not keywords that must be used, but instead represent purposes that must be captured in the taxonomy adopted by a webpage. Where applicable, authors mark up controls with the chosen taxonomy to indicate the semantic purpose. This provides the potential for user agents and assistive technologies to apply personalized presentations that can enable more people to understand and use the content.</p> - <p class="note">The list of input type purposes is based on the control purposes defined in the <a href="https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill">HTML specification's Autofill section</a>, but it is important to understand that a different technology may have some or all of the same concepts defined in its specification and only the concepts that are mapped to the meanings below are required.</p> + <p class="note">The list of input type purposes is based on the control purposes defined in the <a href="https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill"><abbr title="HyperText Markup Language">HTML</abbr> specification's Autofill section</a>, but it is important to understand that a different technology may have some or all of the same concepts defined in its specification and only the concepts that are mapped to the meanings below are required.</p> <p>The following input control purposes are intended to relate to the user of the content and pertain only to information related to that individual.</p> <ul> - <li><strong>name</strong> - Full name</li> - <li><strong>honorific-prefix</strong> - Prefix or title (e.g., "Mr.", "Ms.", "Dr.", "M<sup>lle</sup>")</li> - <li><strong>given-name</strong> - Given name (in some Western cultures, also known as the <i>first name</i>)</li> - <li><strong>additional-name</strong> - Additional names (in some Western cultures, also known as <i>middle names</i>, forenames other than the first name)</li> - <li><strong>family-name</strong> - Family name (in some Western cultures, also known as the <i>last name</i> or <i>surname</i>)</li> - <li><strong>honorific-suffix</strong> - Suffix (e.g., "Jr.", "B.Sc.", "MBASW", "II")</li> - <li><strong>nickname</strong> - Nickname, screen name, handle: a typically short name used instead of the full name</li> - <li><strong>organization-title</strong> - Job title (e.g., "Software Engineer", "Senior Vice President", "Deputy Managing Director")</li> - <li><strong>username</strong> - A username</li> - <li><strong>new-password</strong> - A new password (e.g., when creating an account or changing a password)</li> - <li><strong>current-password</strong> - The current password for the account identified by the <strong>username</strong> field (e.g., when logging in)</li> - <li><strong>organization</strong> - Company name corresponding to the person, address, or contact information in the other fields associated with this field</li> - <li><strong>street-address</strong> - Street address (multiple lines, newlines preserved)</li> - <li><strong>address-line1</strong> - Street address (one line per field, line 1)</li> - <li><strong>address-line2</strong> - Street address (one line per field, line 2)</li> - <li><strong>address-line3</strong> - Street address (one line per field, line 3)</li> - <li><strong>address-level4</strong> - The most fine-grained administrative level, in addresses with four administrative levels</li> - <li><strong>address-level3</strong> - The third administrative level, in addresses with three or more administrative levels</li> - <li><strong>address-level2</strong> - The second administrative level, in addresses with two or more administrative levels; in the countries with two administrative levels, this would typically be the city, town, village, or other locality within which the relevant street address is found</li> - <li><strong>address-level1</strong> - The broadest administrative level in the address, i.e., the province within which the locality is found; for example, in the US, this would be the state; in Switzerland it would be the canton; in the UK, the post town</li> - <li><strong>country</strong> - Country code</li> - <li><strong>country-name</strong> - Country name</li> - <li><strong>postal-code</strong> - Postal code, post code, ZIP code, CEDEX code (if CEDEX, append "CEDEX", and the <i lang="fr">dissement</i>, if relevant, to the <strong>address-level2</strong> field)</li> - <li><strong>cc-name</strong> - Full name as given on the payment instrument</li> - <li><strong>cc-given-name</strong> - Given name as given on the payment instrument (in some Western cultures, also known as the <i>first name</i>)</li> - <li><strong>cc-additional-name</strong> - Additional names given on the payment instrument (in some Western cultures, also known as <i>middle names</i>, forenames other than the first name)</li> - <li><strong>cc-family-name</strong> - Family name given on the payment instrument (in some Western cultures, also known as the <i>last name</i> or <i>surname</i>)</li> - <li><strong>cc-number</strong> - Code identifying the payment instrument (e.g., the credit card number)</li> - <li><strong>cc-exp</strong> - Expiration date of the payment instrument</li> - <li><strong>cc-exp-month</strong> - Month component of the expiration date of the payment instrument</li> - <li><strong>cc-exp-year</strong> - Year component of the expiration date of the payment instrument</li> - <li><strong>cc-csc</strong> - Security code for the payment instrument (also known as the card security code (CSC), card validation code (CVC), card verification value (CVV), signature panel code (SPC), credit card ID (CCID), etc)</li> - <li><strong>cc-type</strong> - Type of payment instrument</li> - <li><strong>transaction-currency</strong> - The currency that the user would prefer the transaction to use</li> - <li><strong>transaction-amount</strong> - The amount that the user would like for the transaction (e.g., when entering a bid or sale price)</li> - <li><strong>language</strong> - Preferred language</li> - <li><strong>bday</strong> - Birthday</li> - <li><strong>bday-day</strong> - Day component of birthday</li> - <li><strong>bday-month</strong> - Month component of birthday</li> - <li><strong>bday-year</strong> - Year component of birthday</li> - <li><strong>sex</strong> - Gender identity (e.g., Female, <span lang="sm">Fa’afafine</span>)</li> - <li><strong>url</strong> - Home page or other Web page corresponding to the company, person, address, or contact information in the other fields associated with this field</li> - <li><strong>photo</strong> - Photograph, icon, or other image corresponding to the company, person, address, or contact information in the other fields associated with this field</li> - <li><strong>tel</strong> - Full telephone number, including country code</li> - <li><strong>tel-country-code</strong> - Country code component of the telephone number</li> - <li><strong>tel-national</strong> - Telephone number without the country code component, with a country-internal prefix applied if applicable</li> - <li><strong>tel-area-code</strong> - Area code component of the telephone number, with a country-internal prefix applied if applicable</li> - <li><strong>tel-local</strong> - Telephone number without the country code and area code components</li> - <li><strong>tel-local-prefix</strong> - First part of the component of the telephone number that follows the area code, when that component is split into two components</li> - <li><strong>tel-local-suffix</strong> - Second part of the component of the telephone number that follows the area code, when that component is split into two components</li> - <li><strong>tel-extension</strong> - Telephone number internal extension code</li> - <li><strong>email</strong> - E-mail address</li> - <li><strong>impp</strong> - URL representing an instant messaging protocol endpoint (for example, "<strong>aim:goim?screenname=example</strong>" or "<strong>xmpp:fred@example.net</strong>")</li> + <li><code class="language-html">name</code> - Full name</li> + <li><code class="language-html">honorific-prefix</code> - Prefix or title (e.g., "Mr.", "Ms.", "Dr.", "M<sup>lle</sup>")</li> + <li><code class="language-html">given-name</code> - Given name (in some Western cultures, also known as the <i>first name</i>)</li> + <li><code class="language-html">additional-name</code> - Additional names (in some Western cultures, also known as <i>middle names</i>, forenames other than the first name)</li> + <li><code class="language-html">family-name</code> - Family name (in some Western cultures, also known as the <i>last name</i> or <i>surname</i>)</li> + <li><code class="language-html">honorific-suffix</code> - Suffix (e.g., "Jr.", "B.Sc.", "MBASW", "II")</li> + <li><code class="language-html">nickname</code> - Nickname, screen name, handle: a typically short name used instead of the full name</li> + <li><code class="language-html">organization-title</code> - Job title (e.g., "Software Engineer", "Senior Vice President", "Deputy Managing Director")</li> + <li><code class="language-html">username</code> - A username</li> + <li><code class="language-html">new-password</code> - A new password (e.g., when creating an account or changing a password)</li> + <li><code class="language-html">current-password</code> - The current password for the account identified by the <code class="language-html">username</code> field (e.g., when logging in)</li> + <li><code class="language-html">organization</code> - Company name corresponding to the person, address, or contact information in the other fields associated with this field</li> + <li><code class="language-html">street-address</code> - Street address (multiple lines, newlines preserved)</li> + <li><code class="language-html">address-line1</code> - Street address (one line per field, line 1)</li> + <li><code class="language-html">address-line2</code> - Street address (one line per field, line 2)</li> + <li><code class="language-html">address-line3</code> - Street address (one line per field, line 3)</li> + <li><code class="language-html">address-level4</code> - The most fine-grained administrative level, in addresses with four administrative levels</li> + <li><code class="language-html">address-level3</code> - The third administrative level, in addresses with three or more administrative levels</li> + <li><code class="language-html">address-level2</code> - The second administrative level, in addresses with two or more administrative levels; in the countries with two administrative levels, this would typically be the city, town, village, or other locality within which the relevant street address is found</li> + <li><code class="language-html">address-level1</code> - The broadest administrative level in the address, i.e., the province within which the locality is found; for example, in the US, this would be the state; in Switzerland it would be the canton; in the UK, the post town</li> + <li><code class="language-html">country</code> - Country code</li> + <li><code class="language-html">country-name</code> - Country name</li> + <li><code class="language-html">postal-code</code> - Postal code, post code, ZIP code, CEDEX code (if CEDEX, append "CEDEX", and the <i lang="fr">arrondissement</i>, if relevant, to the <code class="language-html">address-level2</code> field)</li> + <li><code class="language-html">cc-name</code> - Full name as given on the payment instrument</li> + <li><code class="language-html">cc-given-name</code> - Given name as given on the payment instrument (in some Western cultures, also known as the <i>first name</i>)</li> + <li><code class="language-html">cc-additional-name</code> - Additional names given on the payment instrument (in some Western cultures, also known as <i>middle names</i>, forenames other than the first name)</li> + <li><code class="language-html">cc-family-name</code> - Family name given on the payment instrument (in some Western cultures, also known as the <i>last name</i> or <i>surname</i>)</li> + <li><code class="language-html">cc-number</code> - Code identifying the payment instrument (e.g., the credit card number)</li> + <li><code class="language-html">cc-exp</code> - Expiration date of the payment instrument</li> + <li><code class="language-html">cc-exp-month</code> - Month component of the expiration date of the payment instrument</li> + <li><code class="language-html">cc-exp-year</code> - Year component of the expiration date of the payment instrument</li> + <li><code class="language-html">cc-csc</code> - Security code for the payment instrument (also known as the card security code (CSC), card validation code (CVC), card verification value (CVV), signature panel code (SPC), credit card ID (CCID), etc)</li> + <li><code class="language-html">cc-type</code> - Type of payment instrument</li> + <li><code class="language-html">transaction-currency</code> - The currency that the user would prefer the transaction to use</li> + <li><code class="language-html">transaction-amount</code> - The amount that the user would like for the transaction (e.g., when entering a bid or sale price)</li> + <li><code class="language-html">language</code> - Preferred language</li> + <li><code class="language-html">bday</code> - Birthday</li> + <li><code class="language-html">bday-day</code> - Day component of birthday</li> + <li><code class="language-html">bday-month</code> - Month component of birthday</li> + <li><code class="language-html">bday-year</code> - Year component of birthday</li> + <li><code class="language-html">sex</code> - Gender identity (e.g., Female, <span lang="sm">Fa’afafine</span>)</li> + <li><code class="language-html">url</code> - Home page or other web page corresponding to the company, person, address, or contact information in the other fields associated with this field</li> + <li><code class="language-html">photo</code> - Photograph, icon, or other image corresponding to the company, person, address, or contact information in the other fields associated with this field</li> + <li><code class="language-html">tel</code> - Full telephone number, including country code</li> + <li><code class="language-html">tel-country-code</code> - Country code component of the telephone number</li> + <li><code class="language-html">tel-national</code> - Telephone number without the country code component, with a country-internal prefix applied if applicable</li> + <li><code class="language-html">tel-area-code</code> - Area code component of the telephone number, with a country-internal prefix applied if applicable</li> + <li><code class="language-html">tel-local</code> - Telephone number without the country code and area code components</li> + <li><code class="language-html">tel-local-prefix</code> - First part of the component of the telephone number that follows the area code, when that component is split into two components</li> + <li><code class="language-html">tel-local-suffix</code> - Second part of the component of the telephone number that follows the area code, when that component is split into two components</li> + <li><code class="language-html">tel-extension</code> - Telephone number internal extension code</li> + <li><code class="language-html">email</code> - E-mail address</li> + <li><code class="language-html">impp</code> - <abbr title="Uniform Resource Locator">URL</abbr> representing an instant messaging protocol endpoint (for example, "<code class="language-html">aim:goim?screenname=example</code>" or "<code class="language-html">xmpp:fred@example.net</code>")</li> </ul> </section> diff --git a/guidelines/relative-luminance.html b/guidelines/relative-luminance.html index ed65eb01df..e7b8cbc55d 100644 --- a/guidelines/relative-luminance.html +++ b/guidelines/relative-luminance.html @@ -340,7 +340,7 @@ <h1>MathML version of the relative luminance definition</h1> </div> <div class="note" role="note" id="issue-container-generatedID-129"><div role="heading" class="note-title marker" id="h-note-129" aria-level="3"><span>Note</span><!---0.410359%--></div><p class="">Before May 2021 the value of 0.04045 in the definition was different (0.03928). It was taken from an older version of the specification and has been updated. It has no practical effect on the calculations in the context of these guidelines.</p></div> - <div class="note" role="note" id="issue-container-generatedID-130"><div role="heading" class="note-title marker" id="h-note-130" aria-level="3"><span>Note</span><!---0.410359%--></div><p class="">Almost all systems used today to view Web content assume sRGB encoding. Unless it + <div class="note" role="note" id="issue-container-generatedID-130"><div role="heading" class="note-title marker" id="h-note-130" aria-level="3"><span>Note</span><!---0.410359%--></div><p class="">Almost all systems used today to view web content assume sRGB encoding. Unless it is known that another color space will be used to process and display the content, authors should evaluate using sRGB colorspace. If using other color spaces, see <a href="https://www.w3.org/WAI/WCAG22/Understanding/contrast-minimum">Understanding Success Criterion 1.4.3</a>. </p></div> diff --git a/guidelines/respec-config.js b/guidelines/respec-config.js index a6189081a5..75d1ff7d1d 100644 --- a/guidelines/respec-config.js +++ b/guidelines/respec-config.js @@ -8,10 +8,10 @@ var respecConfig = { permalinkHide: false, tocIntroductory: true, // specification status (e.g., WD, LC, NOTE, etc.). If in doubt use ED. - specStatus: "ED", + specStatus: "REC", //crEnd: "2012-04-30", //perEnd: "2013-07-23", - publishDate: "2023-10-05", + publishDate: "2024-12-12", diffTool: "http://www.aptest.com/standards/htmldiff/htmldiff.pl", // the specifications short name, as in https://www.w3.org/TR/short-name/ @@ -62,62 +62,22 @@ var respecConfig = { companyURI: "https://loc.gov/", w3cid: 90310 }, - { + { name: "Michael Cooper", url: 'https://www.w3.org/People/cooper', - //mailto: "cooper@w3.org", company: "W3C", companyURI: "https://www.w3.org", - w3cid: 34017 + w3cid: 34017, + retiredDate: "2023-07-31" }, { name: "Andrew Kirkpatrick", - //url: "http://www.adobe.com/", - mailto: "akirkpat@adobe.com", company: "Adobe", companyURI: "http://www.adobe.com/", - w3cid: 39770 + w3cid: 39770, + retiredDate: "2020-03-04" } - ], - /* - formerEditors: [ - { - name: "Ben Caldwell", - company: "Trace R&D Center, University of Wisconsin-Madison", - w3cid: 33602 - }, - { - name: "Loretta Guarino Reid", - company: "Google, Inc.", - w3cid: 35436 - }, - { - name: "Gregg Vanderheiden", - company: "Trace R&D Center, University of Wisconsin-Madison", - w3cid: 3442 - }, - { - name: "Wendy Chisholm", - company: "W3C", - w3cid: 4099 - }, - { - name: "John Slatin", - company: "Accessibility Institute, University of Texas at Austin", - w3cid: 35537 - }, - { - name: "Jason White", - company: "University of Melbourne", - w3cid: 74028 - }, - { - name: "Joshue O Connor", - company: "Invited Expert, InterAccess", - w3cid: 41218 - } - ], - */ + ], // authors, add as many as you like. // This is optional, uncomment if you have authors as well as editors. diff --git a/guidelines/sc/20/audio-control.html b/guidelines/sc/20/audio-control.html index aaccda2077..f19fd6edf6 100644 --- a/guidelines/sc/20/audio-control.html +++ b/guidelines/sc/20/audio-control.html @@ -4,12 +4,12 @@ <h4>Audio Control</h4> <p class="conformance-level">A</p> - <p>If any audio on a Web page plays automatically for more than 3 seconds, either a <a>mechanism</a> is available to pause or stop the audio, or a mechanism is available to control audio + <p>If any audio on a web page plays automatically for more than 3 seconds, either a <a>mechanism</a> is available to <a>pause</a> or stop the audio, or a mechanism is available to control audio volume independently from the overall system volume level. </p> <p class="note">Since any content that does not meet this success criterion can interfere with a user's - ability to use the whole page, all content on the Web page (whether or not it is used + ability to use the whole page, all content on the web page (whether or not it is used to meet other success criteria) must meet this success criterion. See <a href="#cc5">Conformance Requirement 5: Non-Interference</a>. </p> diff --git a/guidelines/sc/20/bypass-blocks.html b/guidelines/sc/20/bypass-blocks.html index 5e33982b78..0f4ce7ca78 100644 --- a/guidelines/sc/20/bypass-blocks.html +++ b/guidelines/sc/20/bypass-blocks.html @@ -4,7 +4,7 @@ <h4>Bypass Blocks</h4> <p class="conformance-level">A</p> - <p>A <a>mechanism</a> is available to bypass blocks of content that are repeated on multiple <a>Web pages</a>. + <p>A <a>mechanism</a> is available to bypass blocks of content that are repeated on multiple <a>web pages</a>. </p> </section> diff --git a/guidelines/sc/20/consistent-identification.html b/guidelines/sc/20/consistent-identification.html index 789b8d23f6..6b04f77b20 100644 --- a/guidelines/sc/20/consistent-identification.html +++ b/guidelines/sc/20/consistent-identification.html @@ -4,7 +4,7 @@ <h4>Consistent Identification</h4> <p class="conformance-level">AA</p> - <p>Components that have the <a>same functionality</a> within a <a>set of Web pages</a> are identified consistently. + <p>Components that have the <a>same functionality</a> within a <a>set of web pages</a> are identified consistently. </p> </section> diff --git a/guidelines/sc/20/consistent-navigation.html b/guidelines/sc/20/consistent-navigation.html index a1df5d4e8a..041cfd7ad9 100644 --- a/guidelines/sc/20/consistent-navigation.html +++ b/guidelines/sc/20/consistent-navigation.html @@ -4,7 +4,7 @@ <h4>Consistent Navigation</h4> <p class="conformance-level">AA</p> - <p>Navigational mechanisms that are repeated on multiple <a>Web pages</a> within a <a>set of Web pages</a> occur in the <a>same relative order</a> each time they are repeated, unless a change is initiated by the user. + <p>Navigational mechanisms that are repeated on multiple <a>web pages</a> within a <a>set of web pages</a> occur in the <a>same relative order</a> each time they are repeated, unless a change is initiated by the user. </p> </section> diff --git a/guidelines/sc/20/error-prevention-all.html b/guidelines/sc/20/error-prevention-all.html index 8fb05bb90e..806455d470 100644 --- a/guidelines/sc/20/error-prevention-all.html +++ b/guidelines/sc/20/error-prevention-all.html @@ -4,13 +4,13 @@ <h4>Error Prevention (All)</h4> <p class="conformance-level">AAA</p> - <p>For <a>Web pages</a> that require the user to submit information, at least one of the following is true: + <p>For <a>web pages</a> that require the user to submit information, at least one of the following is true: </p> <dl> <dt>Reversible</dt><dd>Submissions are reversible.</dd> - <dt>Checked</dt><dd>Data entered by the user is checked for input errors and the user is provided an opportunity to correct them.</dd> - <dt>Confirmed</dt><dd>A mechanism is available for reviewing, confirming, and correcting information before finalizing the submission.</dd> + <dt>Checked</dt><dd>Data entered by the user is checked for <a>input errors</a> and the user is provided an opportunity to correct them.</dd> + <dt>Confirmed</dt><dd>A <a>mechanism</a> is available for reviewing, confirming, and correcting information before finalizing the submission.</dd> </dl> </section> diff --git a/guidelines/sc/20/error-prevention-legal-financial-data.html b/guidelines/sc/20/error-prevention-legal-financial-data.html index 0059cff558..9cc096a0a4 100644 --- a/guidelines/sc/20/error-prevention-legal-financial-data.html +++ b/guidelines/sc/20/error-prevention-legal-financial-data.html @@ -4,14 +4,14 @@ <h4>Error Prevention (Legal, Financial, Data)</h4> <p class="conformance-level">AA</p> - <p>For <a>Web pages</a> that cause <a>legal commitments</a> or financial transactions for the user to occur, that modify or delete <a>user-controllable</a> data in data storage systems, or that submit user test responses, at least one of + <p>For <a>web pages</a> that cause <a>legal commitments</a> or financial transactions for the user to occur, that modify or delete <a>user-controllable</a> data in data storage systems, or that submit user test responses, at least one of the following is true: </p> <dl> <dt>Reversible</dt><dd>Submissions are reversible.</dd> - <dt>Checked</dt><dd>Data entered by the user is checked for input errors and the user is provided an opportunity to correct them.</dd> - <dt>Confirmed</dt><dd>A mechanism is available for reviewing, confirming, and correcting information before finalizing the submission.</dd> + <dt>Checked</dt><dd>Data entered by the user is checked for <a>input errors</a> and the user is provided an opportunity to correct them.</dd> + <dt>Confirmed</dt><dd>A <a>mechanism</a> is available for reviewing, confirming, and correcting information before finalizing the submission.</dd> </dl> </section> diff --git a/guidelines/sc/20/focus-order.html b/guidelines/sc/20/focus-order.html index 5c36ef43f5..67c724e207 100644 --- a/guidelines/sc/20/focus-order.html +++ b/guidelines/sc/20/focus-order.html @@ -4,7 +4,7 @@ <h4>Focus Order</h4> <p class="conformance-level">A</p> - <p>If a <a>Web page</a> can be <a>navigated sequentially</a> and the navigation sequences affect meaning or operation, focusable components receive + <p>If a <a>web page</a> can be <a>navigated sequentially</a> and the navigation sequences affect meaning or operation, focusable components receive focus in an order that preserves meaning and operability. </p> diff --git a/guidelines/sc/20/focus-visible.html b/guidelines/sc/20/focus-visible.html index ca4d3a7f90..3421e5154c 100644 --- a/guidelines/sc/20/focus-visible.html +++ b/guidelines/sc/20/focus-visible.html @@ -4,8 +4,7 @@ <h4>Focus Visible</h4> <p class="conformance-level">AA</p> - <p>Any keyboard operable user interface has a mode of operation where the keyboard focus - indicator is visible. + <p>Any keyboard operable user interface has a mode of operation where the keyboard <a>focus indicator</a> is visible. </p> </section> diff --git a/guidelines/sc/20/language-of-page.html b/guidelines/sc/20/language-of-page.html index c921129756..bae8a9ee88 100644 --- a/guidelines/sc/20/language-of-page.html +++ b/guidelines/sc/20/language-of-page.html @@ -4,7 +4,7 @@ <h4>Language of Page</h4> <p class="conformance-level">A</p> - <p>The default <a>human language</a> of each <a>Web page</a> can be <a>programmatically determined</a>. + <p>The default <a>human language</a> of each <a>web page</a> can be <a>programmatically determined</a>. </p> </section> diff --git a/guidelines/sc/20/language-of-parts.html b/guidelines/sc/20/language-of-parts.html index 52425fc1cf..839c12ab26 100644 --- a/guidelines/sc/20/language-of-parts.html +++ b/guidelines/sc/20/language-of-parts.html @@ -6,7 +6,7 @@ <h4>Language of Parts</h4> <p>The <a>human language</a> of each passage or phrase in the content can be <a>programmatically determined</a> except for proper names, technical terms, words of indeterminate language, and words or phrases that have become part of the vernacular of the immediately surrounding - text. + <a>text</a>. </p> </section> diff --git a/guidelines/sc/20/link-purpose-link-only.html b/guidelines/sc/20/link-purpose-link-only.html index e14105120f..5780c41e74 100644 --- a/guidelines/sc/20/link-purpose-link-only.html +++ b/guidelines/sc/20/link-purpose-link-only.html @@ -4,7 +4,7 @@ <h4>Link Purpose (Link Only)</h4> <p class="conformance-level">AAA</p> - <p>A <a>mechanism</a> is available to allow the purpose of each link to be identified from link text alone, + <p>A <a>mechanism</a> is available to allow the <a>purpose of each link</a> to be identified from link text alone, except where the purpose of the link would be <a>ambiguous to users in general</a>. </p> diff --git a/guidelines/sc/20/location.html b/guidelines/sc/20/location.html index c7cb164b4f..cb72028db4 100644 --- a/guidelines/sc/20/location.html +++ b/guidelines/sc/20/location.html @@ -4,7 +4,7 @@ <h4>Location</h4> <p class="conformance-level">AAA</p> - <p>Information about the user's location within a <a>set of Web pages</a> is available. + <p>Information about the user's location within a <a>set of web pages</a> is available. </p> </section> diff --git a/guidelines/sc/20/multiple-ways.html b/guidelines/sc/20/multiple-ways.html index 0b66078a99..f320500072 100644 --- a/guidelines/sc/20/multiple-ways.html +++ b/guidelines/sc/20/multiple-ways.html @@ -4,7 +4,7 @@ <h4>Multiple Ways</h4> <p class="conformance-level">AA</p> - <p>More than one way is available to locate a <a>Web page</a> within a <a>set of Web pages</a> except where the Web Page is the result of, or a step in, a <a>process</a>. + <p>More than one way is available to locate a <a>web page</a> within a <a>set of web pages</a> except where the web page is the result of, or a step in, a <a>process</a>. </p> </section> diff --git a/guidelines/sc/20/name-role-value.html b/guidelines/sc/20/name-role-value.html index b3ce49a363..4993e907e8 100644 --- a/guidelines/sc/20/name-role-value.html +++ b/guidelines/sc/20/name-role-value.html @@ -5,10 +5,10 @@ <h4>Name, Role, Value</h4> <p class="conformance-level">A</p> <p>For all <a>user interface components</a> (including but not limited to: form elements, links and components generated by scripts), - the <a>name</a> and <a>role</a> can be <a>programmatically determined</a>; states, properties, and values that can be set by the user can be <a>programmatically set</a>; and notification of changes to these items is available to <a>user agents</a>, including <a>assistive technologies</a>. + the <a>name</a> and <a>role</a> can be <a>programmatically determined</a>; <a>states</a>, properties, and values that can be set by the user can be <a>programmatically set</a>; and notification of changes to these items is available to <a>user agents</a>, including <a>assistive technologies</a>. </p> - <p class="note">This success criterion is primarily for Web authors who develop or script their own + <p class="note">This success criterion is primarily for web authors who develop or script their own user interface components. For example, standard HTML controls already meet this success criterion when used according to specification. </p> diff --git a/guidelines/sc/20/no-keyboard-trap.html b/guidelines/sc/20/no-keyboard-trap.html index 89d917165d..c8865dd0db 100644 --- a/guidelines/sc/20/no-keyboard-trap.html +++ b/guidelines/sc/20/no-keyboard-trap.html @@ -10,7 +10,7 @@ <h4>No Keyboard Trap</h4> </p> <p class="note">Since any content that does not meet this success criterion can interfere with a user's - ability to use the whole page, all content on the Web page (whether it is used to + ability to use the whole page, all content on the web page (whether it is used to meet other success criteria or not) must meet this success criterion. See <a href="#cc5">Conformance Requirement 5: Non-Interference</a>. </p> diff --git a/guidelines/sc/20/pause-stop-hide.html b/guidelines/sc/20/pause-stop-hide.html index ab71a6bf3b..b3268e313f 100644 --- a/guidelines/sc/20/pause-stop-hide.html +++ b/guidelines/sc/20/pause-stop-hide.html @@ -15,7 +15,7 @@ <h4>Pause, Stop, Hide</h4> <p>For any moving, blinking or scrolling information that (1) starts automatically, (2) lasts more than five seconds, and (3) is presented in parallel with other content, - there is a mechanism for the user to <a>pause</a>, stop, or hide it unless the movement, blinking, or scrolling is part of an activity + there is a <a>mechanism</a> for the user to <a>pause</a>, stop, or hide it unless the movement, blinking, or scrolling is part of an activity where it is <a>essential</a>; and </p> @@ -39,7 +39,7 @@ <h4>Pause, Stop, Hide</h4> </p> <p class="note">Since any content that does not meet this success criterion can interfere with a user's - ability to use the whole page, all content on the Web page (whether it is used to + ability to use the whole page, all content on the web page (whether it is used to meet other success criteria or not) must meet this success criterion. See <a href="#cc5">Conformance Requirement 5: Non-Interference</a>. </p> diff --git a/guidelines/sc/20/reading-level.html b/guidelines/sc/20/reading-level.html index e3db6ab59e..f3a227a92e 100644 --- a/guidelines/sc/20/reading-level.html +++ b/guidelines/sc/20/reading-level.html @@ -4,7 +4,7 @@ <h4>Reading Level</h4> <p class="conformance-level">AAA</p> - <p>When text requires reading ability more advanced than the <a>lower secondary education level</a> after removal of proper names and titles, <a>supplemental content</a>, or a version that does not require reading ability more advanced than the lower + <p>When text requires reading ability more advanced than the <a>lower secondary education level</a> after removal of proper names and titles, <a>supplemental content</a>, or a version that does not require reading ability more advanced than the lower secondary education level, is available. </p> diff --git a/guidelines/sc/20/three-flashes-or-below-threshold.html b/guidelines/sc/20/three-flashes-or-below-threshold.html index 13b874c11e..cb031f7072 100644 --- a/guidelines/sc/20/three-flashes-or-below-threshold.html +++ b/guidelines/sc/20/three-flashes-or-below-threshold.html @@ -9,7 +9,7 @@ <h4>Three Flashes or Below Threshold</h4> </p> <p class="note">Since any content that does not meet this success criterion can interfere with a user's - ability to use the whole page, all content on the Web page (whether it is used to + ability to use the whole page, all content on the web page (whether it is used to meet other success criteria or not) must meet this success criterion. See <a href="#cc5">Conformance Requirement 5: Non-Interference</a>. </p> diff --git a/guidelines/sc/20/timing-adjustable.html b/guidelines/sc/20/timing-adjustable.html index d058e6111f..cb371fa19b 100644 --- a/guidelines/sc/20/timing-adjustable.html +++ b/guidelines/sc/20/timing-adjustable.html @@ -41,7 +41,7 @@ <h4>Timing Adjustable</h4> <dd> - <p>The time limit is a required part of a real-time event (for example, an auction), + <p>The time limit is a required part of a <a>real-time event</a> (for example, an auction), and no alternative to the time limit is possible; or </p> diff --git a/guidelines/sc/20/visual-presentation.html b/guidelines/sc/20/visual-presentation.html index 6ecf932f34..8ed371b5c5 100644 --- a/guidelines/sc/20/visual-presentation.html +++ b/guidelines/sc/20/visual-presentation.html @@ -11,7 +11,7 @@ <h4>Visual Presentation</h4> <li>Width is no more than 80 characters or glyphs (40 if CJK).</li> <li>Text is not justified (aligned to both the left and the right margins).</li> <li>Line spacing (leading) is at least space-and-a-half within paragraphs, and paragraph spacing is at least 1.5 times larger than the line spacing.</li> - <li>Text can be resized without assistive technology up to 200 percent in a way that does not require the user to scroll horizontally to read a line of text <a>on a full-screen window</a>.</li> + <li>Text can be resized without <a>assistive technology</a> up to 200 percent in a way that does not require the user to scroll horizontally to read a line of text <a>on a full-screen window</a>.</li> </ul> <p class="note">Content is not required to use these values. The requirement is that a mechanism is available for users to change these presentation aspects. The mechanism can be provided by the browser or other user agent. Content is not required to provide the mechanism.</p> diff --git a/guidelines/sc/21/content-on-hover-or-focus.html b/guidelines/sc/21/content-on-hover-or-focus.html index 3ad861e109..0eb2c10e77 100644 --- a/guidelines/sc/21/content-on-hover-or-focus.html +++ b/guidelines/sc/21/content-on-hover-or-focus.html @@ -19,7 +19,7 @@ <h4>Content on Hover or Focus</h4> </dl> - <p>Exception: The visual presentation of the additional content is controlled by the user agent and is not modified by the author.</p> + <p>Exception: The visual presentation of the additional content is controlled by the <a>user agent</a> and is not modified by the author.</p> <p class="note">Examples of additional content controlled by the user agent include browser tooltips created through use of the HTML <a href="https://html.spec.whatwg.org/multipage/dom.html#the-title-attribute"><code>title</code> attribute</a> [[HTML]].</p> <p class="note">Custom tooltips, sub-menus, and other nonmodal popups that display on hover and focus are examples of additional content covered by this criterion.</p> diff --git a/guidelines/sc/21/non-text-contrast.html b/guidelines/sc/21/non-text-contrast.html index 777c521d4e..1b4d3602a3 100644 --- a/guidelines/sc/21/non-text-contrast.html +++ b/guidelines/sc/21/non-text-contrast.html @@ -10,7 +10,7 @@ <h4>Non-text Contrast</h4> <dt>User Interface Components</dt> - <dd>Visual information required to identify <a>user interface components</a> and <a>states</a>, except for inactive components or where the appearance of the component is determined by the user agent and not modified by the author;</dd> + <dd>Visual information required to identify <a>user interface components</a> and <a>states</a>, except for inactive components or where the appearance of the component is determined by the <a>user agent</a> and not modified by the author;</dd> <dt>Graphical Objects</dt> diff --git a/guidelines/sc/21/reflow.html b/guidelines/sc/21/reflow.html index 8fbc922719..5606d0e00a 100644 --- a/guidelines/sc/21/reflow.html +++ b/guidelines/sc/21/reflow.html @@ -11,7 +11,7 @@ <h4>Reflow</h4> </ul> <p>Except for parts of the content which require two-dimensional layout for usage or meaning.</p> - <p class="note">320 CSS pixels is equivalent to a starting viewport width of 1280 CSS pixels wide at 400% zoom. For web content which is designed to scroll horizontally (e.g., with vertical text), 256 CSS pixels is equivalent to a starting viewport height of 1024 CSS pixels at 400% zoom.</p> + <p class="note">320 CSS pixels is equivalent to a starting <a>viewport</a> width of 1280 CSS pixels wide at 400% zoom. For web content which is designed to scroll horizontally (e.g., with vertical text), 256 CSS pixels is equivalent to a starting viewport height of 1024 CSS pixels at 400% zoom.</p> <p class="note">Examples of content which requires two-dimensional layout are images required for understanding (such as maps and diagrams), video, games, presentations, data tables (not individual cells), and interfaces where it is necessary to keep toolbars in view while manipulating content. It is acceptable to provide two-dimensional scrolling for such parts of the content.</p> diff --git a/guidelines/sc/21/target-size-enhanced.html b/guidelines/sc/21/target-size-enhanced.html index c83046b2a7..30c5b5886c 100644 --- a/guidelines/sc/21/target-size-enhanced.html +++ b/guidelines/sc/21/target-size-enhanced.html @@ -9,11 +9,11 @@ <h4>Target Size (Enhanced)</h4> <dt>Equivalent</dt> <dd>The target is available through an equivalent link or control on the same page that is at least 44 by 44 CSS pixels;</dd> <dt>Inline</dt> - <dd>The target is in a sentence or block of text;</dd> + <dd>The target is in a sentence or <a>block of text</a>;</dd> <dt>User Agent Control</dt> - <dd>The size of the target is determined by the user agent and is not modified by the author;</dd> + <dd>The size of the target is determined by the <a>user agent</a> and is not modified by the author;</dd> <dt>Essential</dt> - <dd>A particular presentation of the target is <a>essential</a> to the information being conveyed.</dd> + <dd>A particular <a>presentation</a> of the target is <a>essential</a> to the information being conveyed.</dd> </dl> </section> diff --git a/guidelines/sc/21/text-spacing.html b/guidelines/sc/21/text-spacing.html index 7774996f19..eaf37f1b5d 100644 --- a/guidelines/sc/21/text-spacing.html +++ b/guidelines/sc/21/text-spacing.html @@ -13,7 +13,7 @@ <h4>Text Spacing</h4> <li>Word spacing to at least 0.16 times the font size.</li> </ul> - <p>Exception: Human languages and scripts that do not make use of one or more of these text style properties in written text can conform using only the properties that exist for that combination of language and script.</p> + <p>Exception: <a>Human languages</a> and scripts that do not make use of one or more of these text style properties in written text can conform using only the properties that exist for that combination of language and script.</p> <p class="note">Content is not required to use these text spacing values. The requirement is to ensure that when a user overrides the authored text spacing, content or functionality is not lost.</p> diff --git a/guidelines/sc/22/accessible-authentication-minimum.html b/guidelines/sc/22/accessible-authentication-minimum.html index 150b65fef0..29a46b406d 100644 --- a/guidelines/sc/22/accessible-authentication-minimum.html +++ b/guidelines/sc/22/accessible-authentication-minimum.html @@ -14,15 +14,15 @@ <h4>Accessible Authentication (Minimum)</h4> <dt>Object Recognition</dt> <dd>The cognitive function test is to recognize objects.</dd> <dt>Personal Content</dt> - <dd>The cognitive function test is to identify <a>non-text content</a> the user provided to the Web site.</dd> + <dd>The cognitive function test is to identify <a>non-text content</a> the user provided to the website.</dd> </dl> <p class="note">"Object recognition" and "Personal content" may be represented by images, video, or audio.</p> <div class="note">Examples of mechanisms that satisfy this criterion include: - <ol> + <ul> <li>support for password entry by password managers to reduce memory need, and</li> <li>copy and paste to reduce the cognitive burden of re-typing.</li> - </ol> + </ul> </div> </section> diff --git a/guidelines/sc/22/consistent-help.html b/guidelines/sc/22/consistent-help.html index 62c9292b09..bdb9b91a02 100644 --- a/guidelines/sc/22/consistent-help.html +++ b/guidelines/sc/22/consistent-help.html @@ -5,7 +5,7 @@ <h4>Consistent Help</h4> <p class="conformance-level">A</p> <p class="change">New</p> - <p>If a <a>Web page</a> contains any of the following help <a>mechanisms</a>, and those mechanisms are repeated on multiple Web pages within a <a>set of Web pages</a>, they occur in the same order relative to other page content, unless a change is initiated by the user:</p> + <p>If a <a>web page</a> contains any of the following help <a>mechanisms</a>, and those mechanisms are repeated on multiple web pages within a <a>set of web pages</a>, they occur in the same order relative to other page content, unless a change is initiated by the user:</p> <ul> <li>Human contact details;</li> @@ -15,7 +15,7 @@ <h4>Consistent Help</h4> </ul> <p class="note">Help mechanisms may be provided directly on the page, or may be provided via a direct link to a different page containing the information.</p> - <p class="note">For this Success Criterion, "the same order relative to other page content" can be thought of as how the content is ordered when the page is serialized. The visual position of a help mechanism is likely to be consistent across pages for the same page variation (e.g., CSS break-point). The user can initiate a change, such as changing the page's zoom or orientation, which may trigger a different page variation. This criterion is concerned with relative order across pages displayed in the same page variation (e.g., same zoom level and orientation).</p> + <p class="note">For this success criterion, "the same order relative to other page content" can be thought of as how the content is ordered when the page is serialized. The visual position of a help mechanism is likely to be consistent across pages for the same page variation (e.g., CSS break-point). The user can initiate a change, such as changing the page's zoom or orientation, which may trigger a different page variation. This criterion is concerned with relative order across pages displayed in the same page variation (e.g., same zoom level and orientation).</p> </section> diff --git a/guidelines/sc/22/focus-not-obscured-minimum.html b/guidelines/sc/22/focus-not-obscured-minimum.html index 4d0ef3bce2..0ac886b9eb 100644 --- a/guidelines/sc/22/focus-not-obscured-minimum.html +++ b/guidelines/sc/22/focus-not-obscured-minimum.html @@ -7,7 +7,7 @@ <h4>Focus Not Obscured (Minimum)</h4> <p>When a <a>user interface component</a> receives keyboard focus, the component is not entirely hidden due to author-created content.</p> - <p class="note">Where content in a configurable interface can be repositioned by the user, then only the initial positions of user-movable content are considered for testing and conformance of this Success Criterion.</p> + <p class="note">Where content in a configurable interface can be repositioned by the user, then only the initial positions of user-movable content are considered for testing and conformance of this success criterion.</p> <p class="note">Content opened by the <em>user</em> may obscure the component receiving focus. If the user can reveal the focused component without advancing the keyboard focus, the component with focus is not considered visually hidden due to author-created content.</p> diff --git a/guidelines/sc/22/target-size-minimum.html b/guidelines/sc/22/target-size-minimum.html index 81675f3ebe..a1b64321e4 100644 --- a/guidelines/sc/22/target-size-minimum.html +++ b/guidelines/sc/22/target-size-minimum.html @@ -3,17 +3,22 @@ <h4>Target Size (Minimum)</h4> <p class="conformance-level">AA</p> - <p class="change">New</p> + <p class="change">New</p> - <p>The size of the <a>target</a> for <a>pointer inputs</a> is at least 24 by 24 <a>CSS pixels</a>, except where:</p> - <ul> - <li><strong>Spacing:</strong> Undersized targets (those less than 24 by 24 CSS pixels) are positioned so that if a 24 CSS pixel diameter circle is centered on the <a>bounding box</a> of each, the circles do not intersect another target or the circle for another undersized target;</li> - <li><strong>Equivalent:</strong> The function can be achieved through a different control on the same page that meets this criterion;</li> - <li><strong>Inline:</strong> The target is in a sentence or its size is otherwise constrained by the line-height of non-target text;</li> - <li><strong>User agent control:</strong> The size of the target is determined by the <a>user agent</a> and is not modified by the author;</li> - <li><strong>Essential:</strong> A particular <a>presentation</a> of the target is <a>essential</a> or is legally required for the information being conveyed.</li> - </ul> + <p>The size of the <a>target</a> for <a>pointer inputs</a> is at least 24 by 24 <a>CSS pixels</a>, except when:</p> + <dl> + <dt>Spacing</dt> + <dd>Undersized targets (those less than 24 by 24 CSS pixels) are positioned so that if a 24 CSS pixel diameter circle is centered on the <a>bounding box</a> of each, the circles do not intersect another target or the circle for another undersized target;</dd> + <dt>Equivalent</dt> + <dd>The function can be achieved through a different control on the same page that meets this criterion;</dd> + <dt>Inline</dt> + <dd>The target is in a sentence or its size is otherwise constrained by the line-height of non-target text;</dd> + <dt>User Agent Control</dt> + <dd>The size of the target is determined by the <a>user agent</a> and is not modified by the author;</dd> + <dt>Essential</dt> + <dd>A particular <a>presentation</a> of the target is <a>essential</a> or is legally required for the information being conveyed.</dd> + </dl> <p class="note">Targets that allow for values to be selected spatially based on position within the target are considered one target for the purpose of the success criterion. Examples include sliders, color pickers displaying a gradient of colors, or editable areas where you position the cursor.</p> <p class="note">For inline targets the line-height should be interpreted as perpendicular to the flow of text. For example, in a language displayed vertically, the line-height would be horizontal.</p> -</section> +</section> diff --git a/guidelines/terms/20/accessibility-supported.html b/guidelines/terms/20/accessibility-supported.html index e863db98c9..3d53e4c99a 100644 --- a/guidelines/terms/20/accessibility-supported.html +++ b/guidelines/terms/20/accessibility-supported.html @@ -3,8 +3,8 @@ <p>supported by users' <a>assistive technologies</a> as well as the accessibility features in browsers and other <a>user agents</a></p> - <p>To qualify as an accessibility-supported use of a Web content technology (or feature - of a technology), both 1 and 2 must be satisfied for a Web content technology (or + <p>To qualify as an accessibility-supported use of a web content technology (or feature + of a technology), both 1 and 2 must be satisfied for a web content technology (or feature): </p> @@ -12,7 +12,7 @@ <li> - <p><strong>The way that the <a>Web content technology</a> is used must be supported by users' assistive technology (AT). </strong> This means that the way that the technology is used has been tested for interoperability + <p><strong>The way that the <a>web content technology</a> is used must be supported by users' assistive technology (AT). </strong> This means that the way that the technology is used has been tested for interoperability with users' assistive technology in the <a>human language(s)</a> of the content, </p> @@ -22,7 +22,7 @@ <li> - <p><strong>The Web content technology must have accessibility-supported user agents that are + <p><strong>The web content technology must have accessibility-supported user agents that are available to users. </strong> This means that at least one of the following four statements is true: </p> @@ -79,7 +79,7 @@ </ol> <p class="note">The Accessibility Guidelines Working Group and the W3C do not specify which or how much support by assistive - technologies there must be for a particular use of a Web technology in order for it + technologies there must be for a particular use of a web technology in order for it to be classified as accessibility supported. (See <a href="https://www.w3.org/WAI/WCAG21/Understanding/conformance#support-level">Level of Assistive Technology Support Needed for "Accessibility Support"</a>.) </p> @@ -87,21 +87,21 @@ as they are not <a>relied upon</a> and the page as a whole meets the conformance requirements, including <a href="#cc4">Conformance Requirement 4</a> and <a href="#cc5">Conformance Requirement 5</a>. </p> - <p class="note">When a <a>Web Technology</a> is used in a way that is "accessibility supported," it does not imply that the entire + <p class="note">When a <a>web technology</a> is used in a way that is "accessibility supported," it does not imply that the entire technology or all uses of the technology are supported. Most technologies, including HTML, lack support for at least one feature or use. Pages conform to WCAG only if the uses of the technology that are accessibility supported can be relied upon to meet WCAG requirements. </p> - <p class="note">When citing Web content technologies that have multiple versions, the version(s) supported + <p class="note">When citing web content technologies that have multiple versions, the version(s) supported should be specified. </p> <p class="note">One way for authors to locate uses of a technology that are accessibility supported would be to consult compilations of uses that are documented to be accessibility supported. (See <a href="https://www.w3.org/WAI/WCAG21/Understanding/conformance#documented-lists">Understanding Accessibility-Supported Web Technology Uses</a>.) Authors, companies, technology vendors, or others may document accessibility-supported - ways of using Web content technologies. However, all ways of using technologies in + ways of using web content technologies. However, all ways of using technologies in the documentation would need to meet the definition of accessibility-supported Web content technologies above. </p> diff --git a/guidelines/terms/20/ambiguous-to-users-in-general.html b/guidelines/terms/20/ambiguous-to-users-in-general.html index 5260803b07..71e67d8b93 100644 --- a/guidelines/terms/20/ambiguous-to-users-in-general.html +++ b/guidelines/terms/20/ambiguous-to-users-in-general.html @@ -1,7 +1,7 @@ <dt><dfn id="dfn-ambiguous-to-users-in-general">ambiguous to users in general</dfn></dt> <dd> - <p>the purpose cannot be determined from the link and all information of the Web page + <p>the purpose cannot be determined from the link and all information of the web page presented to the user simultaneously with the link (i.e., readers without disabilities would not know what a link would do until they activated it) </p> diff --git a/guidelines/terms/20/assistive-technology.html b/guidelines/terms/20/assistive-technology.html index 4a918854c8..0a9d4c306b 100644 --- a/guidelines/terms/20/assistive-technology.html +++ b/guidelines/terms/20/assistive-technology.html @@ -23,7 +23,7 @@ target narrowly defined populations of users with specific disabilities. The assistance provided by an assistive technology is more specific and appropriate to the needs of its target users. The mainstream user agent may provide important functionality - to assistive technologies like retrieving Web content from program objects or parsing + to assistive technologies like retrieving web content from program objects or parsing markup into identifiable bundles. </p> diff --git a/guidelines/terms/20/blocks-of-text.html b/guidelines/terms/20/blocks-of-text.html index 1b85e3dc14..46286158ad 100644 --- a/guidelines/terms/20/blocks-of-text.html +++ b/guidelines/terms/20/blocks-of-text.html @@ -1,6 +1,6 @@ -<dt><dfn id="dfn-blocks-of-text">blocks of text</dfn></dt> +<dt><dfn id="dfn-blocks-of-text" data-lt="block of text">blocks of text</dfn></dt> <dd> - <p>more than one sentence of text</p> + <p>more than one sentence of text</p> </dd> diff --git a/guidelines/terms/20/changes-of-context.html b/guidelines/terms/20/changes-of-context.html index b57e76b901..f9f20e9e3f 100644 --- a/guidelines/terms/20/changes-of-context.html +++ b/guidelines/terms/20/changes-of-context.html @@ -7,7 +7,7 @@ <p>Changes in context include changes of:</p> - <ol> + <ul> <li><a>user agent</a>; </li> @@ -17,10 +17,10 @@ <li>focus;</li> - <li><a>content</a> that changes the meaning of the <a>Web page</a> + <li><a>content</a> that changes the meaning of the <a>web page</a> </li> - </ol> + </ul> <p class="note">A change of content is not always a change of context. Changes in content, such as an expanding outline, dynamic menu, or a tab control do not necessarily change the diff --git a/guidelines/terms/20/conforming-alternate-version.html b/guidelines/terms/20/conforming-alternate-version.html index 77faa0f4f3..dd597a83fe 100644 --- a/guidelines/terms/20/conforming-alternate-version.html +++ b/guidelines/terms/20/conforming-alternate-version.html @@ -52,7 +52,7 @@ </p> <p class="note">The conforming alternative version does not need to reside within the scope of conformance, - or even on the same Web site, as long as it is as freely available as the non-conforming + or even on the same website, as long as it is as freely available as the non-conforming version. </p> diff --git a/guidelines/terms/20/content.html b/guidelines/terms/20/content.html index cce2c2c612..eb3681640c 100644 --- a/guidelines/terms/20/content.html +++ b/guidelines/terms/20/content.html @@ -1,4 +1,4 @@ -<dt><dfn id="dfn-content">content</dfn> (Web content) +<dt><dfn id="dfn-content">content</dfn> (web content) </dt> <dd> diff --git a/guidelines/terms/20/general-flash-and-red-flash-thresholds.html b/guidelines/terms/20/general-flash-and-red-flash-thresholds.html index 19048801f6..be6ed61a9e 100644 --- a/guidelines/terms/20/general-flash-and-red-flash-thresholds.html +++ b/guidelines/terms/20/general-flash-and-red-flash-thresholds.html @@ -4,7 +4,7 @@ <p>a <a>flash</a> or rapidly changing image sequence is below the threshold (i.e., content <strong>passes</strong>) if any of the following are true: </p> - <ol> + <ul> <li>there are no more than three <strong>general flashes</strong> and / or no more than three <strong>red flashes</strong> within any one-second period; or </li> @@ -14,7 +14,7 @@ degree visual field on the screen) at typical viewing distance </li> - </ol> + </ul> <p>where:</p> @@ -35,7 +35,7 @@ viewing distance) on a side does not violate the thresholds. </p> - <p class="note">For general software or Web content, using a 341 x 256 pixel rectangle anywhere on the displayed screen area when the content is viewed at 1024 x 768 pixels will provide a good estimate of a 10 degree visual field for standard screen sizes and viewing distances (e.g., 15-17 inch screen at 22-26 inches). This resolution of 75 - 85 ppi is known to be lower, and thus more conservative than the nominal CSS pixel resolution of 96 ppi in CSS specifications. Higher resolutions displays showing the same rendering of the content yield smaller and safer images so it is lower resolutions that are used to define the thresholds. + <p class="note">For general software or web content, using a 341 x 256 pixel rectangle anywhere on the displayed screen area when the content is viewed at 1024 x 768 pixels will provide a good estimate of a 10 degree visual field for standard screen sizes and viewing distances (e.g., 15-17 inch screen at 22-26 inches). This resolution of 75 - 85 ppi is known to be lower, and thus more conservative than the nominal CSS pixel resolution of 96 ppi in CSS specifications. Higher resolutions displays showing the same rendering of the content yield smaller and safer images so it is lower resolutions that are used to define the thresholds. </p> <p class="note">A transition is the change in relative luminance (or relative luminance/color for diff --git a/guidelines/terms/20/human-language.html b/guidelines/terms/20/human-language.html index 17cc924943..78b05c0576 100644 --- a/guidelines/terms/20/human-language.html +++ b/guidelines/terms/20/human-language.html @@ -1,4 +1,4 @@ -<dt><dfn id="dfn-human-language-s" data-lt="human language(s)">human language</dfn></dt> +<dt><dfn id="dfn-human-language-s" data-lt="human languages|human language(s)">human language</dfn></dt> <dd> <p>language that is spoken, written or signed (through visual or tactile means) to communicate diff --git a/guidelines/terms/20/image-of-text.html b/guidelines/terms/20/image-of-text.html index ddf784c34a..375662a4c1 100644 --- a/guidelines/terms/20/image-of-text.html +++ b/guidelines/terms/20/image-of-text.html @@ -1,11 +1,11 @@ <dt><dfn id="dfn-images-of-text" data-lt="images of text">image of text</dfn></dt> <dd> - <p>text that has been rendered in a non-text form (e.g., an image) in order to achieve + <p>text that has been rendered in a non-text form (e.g., an image) in order to achieve a particular visual effect </p> - <p class="note">This does not include <a>text</a> that is part of a picture that contains significant other visual content. + <p class="note">This does not include text that is part of a picture that contains significant other visual content. </p> <aside class="example"><p>A person's name on a nametag in a photograph.</p></aside> diff --git a/guidelines/terms/20/input-error.html b/guidelines/terms/20/input-error.html index 1febee2c75..31e3b63118 100644 --- a/guidelines/terms/20/input-error.html +++ b/guidelines/terms/20/input-error.html @@ -1,4 +1,4 @@ -<dt><dfn id="dfn-input-error">input error</dfn></dt> +<dt><dfn id="dfn-input-error" data-lt="input errors">input error</dfn></dt> <dd> <p>information provided by the user that is not accepted</p> @@ -8,7 +8,7 @@ <ol> - <li>Information that is required by the <a>Web page</a> but omitted by the user + <li>Information that is required by the <a>web page</a> but omitted by the user </li> <li>Information that is provided by the user but that falls outside the required data diff --git a/guidelines/terms/20/label.html b/guidelines/terms/20/label.html index b8624b4ae2..67b3eb0970 100644 --- a/guidelines/terms/20/label.html +++ b/guidelines/terms/20/label.html @@ -1,7 +1,7 @@ <dt><dfn id="dfn-labels" data-lt="labels">label</dfn></dt> <dd> - <p><a>text</a> or other component with a <a>text alternative</a> that is presented to a user to identify a component within Web <a>content</a></p> + <p><a>text</a> or other component with a <a>text alternative</a> that is presented to a user to identify a component within web <a>content</a></p> <p class="note">A label is presented to all users whereas the <a>name</a> may be hidden and only exposed by assistive technology. In many (but not all) cases the name and the label are the same. diff --git a/guidelines/terms/20/name.html b/guidelines/terms/20/name.html index 9530872de2..c51273a1fe 100644 --- a/guidelines/terms/20/name.html +++ b/guidelines/terms/20/name.html @@ -1,7 +1,7 @@ <dt><dfn id="dfn-name">name</dfn></dt> <dd> - <p>text by which software can identify a component within Web content to the user</p> + <p>text by which software can identify a component within web content to the user</p> <p class="note">The name may be hidden and only exposed by assistive technology, whereas a <a>label</a> is presented to all users. In many (but not all) cases, the label and the name are the same. diff --git a/guidelines/terms/20/non-text-content.html b/guidelines/terms/20/non-text-content.html index 612b94689b..76dfc84d6a 100644 --- a/guidelines/terms/20/non-text-content.html +++ b/guidelines/terms/20/non-text-content.html @@ -3,7 +3,7 @@ <p>any content that is not a sequence of characters that can be <a>programmatically determined</a> or where the sequence is not expressing something in <a>human language</a></p> - <p class="note">This includes <a>ASCII Art</a> (which is a pattern of characters), emoticons, leetspeak (which uses character substitution), + <p class="note">This includes <a>ASCII art</a> (which is a pattern of characters), emoticons, leetspeak (which uses character substitution), and images representing text </p> diff --git a/guidelines/terms/20/on-a-full-screen-window.html b/guidelines/terms/20/on-a-full-screen-window.html index 61de699593..d79dc7fd97 100644 --- a/guidelines/terms/20/on-a-full-screen-window.html +++ b/guidelines/terms/20/on-a-full-screen-window.html @@ -1,7 +1,7 @@ <dt><dfn id="dfn-on-a-full-screen-window">on a full-screen window</dfn></dt> <dd> - <p>on the most common sized desktop/laptop display with the viewport maximized</p> + <p>on the most common sized desktop/laptop display with the <a>viewport</a> maximized</p> <p class="note">Since people generally keep their computers for several years, it is best not to rely on the latest desktop/laptop display resolutions but to consider the common desktop/laptop diff --git a/guidelines/terms/20/process.html b/guidelines/terms/20/process.html index 9cafc80647..db40088cd4 100644 --- a/guidelines/terms/20/process.html +++ b/guidelines/terms/20/process.html @@ -3,7 +3,7 @@ <p>series of user actions where each action is required in order to complete an activity</p> - <aside class="example"><p>Successful use of a series of Web pages on a shopping site requires users to view + <aside class="example"><p>Successful use of a series of web pages on a shopping site requires users to view alternative products, prices and offers, select products, submit an order, provide shipping information and provide payment information. </p></aside> diff --git a/guidelines/terms/20/programmatically-determined-link-context.html b/guidelines/terms/20/programmatically-determined-link-context.html index 37c426f2c7..95b4dabfb5 100644 --- a/guidelines/terms/20/programmatically-determined-link-context.html +++ b/guidelines/terms/20/programmatically-determined-link-context.html @@ -5,8 +5,8 @@ </p> <aside class="example"><p>In HTML, information that is programmatically determinable from a link in English - includes text that is in the same paragraph, list, or table cell as the link or in - a table header cell that is associated with the table cell that contains the link. + includes text that is in the same <a href="https://html.spec.whatwg.org/multipage/dom.html#paragraph">paragraph</a>, + list item, or table cell as the link or in a table header cell that is associated with the table cell that contains the link. </p></aside> <p class="note">Since screen readers interpret punctuation, they can also provide the context from diff --git a/guidelines/terms/20/programmatically-set.html b/guidelines/terms/20/programmatically-set.html index 78d8326ee1..085510c7b5 100644 --- a/guidelines/terms/20/programmatically-set.html +++ b/guidelines/terms/20/programmatically-set.html @@ -1,8 +1,7 @@ <dt><dfn id="dfn-programmatically-set">programmatically set</dfn></dt> <dd> - <p>set by software using methods that are supported by user agents, including assistive - technologies + <p>set by software using methods that are supported by <a>user agents</a>, including <a>assistive technologies</a> </p> </dd> diff --git a/guidelines/terms/20/relative-luminance.html b/guidelines/terms/20/relative-luminance.html index a3dd3c369e..a071088136 100644 --- a/guidelines/terms/20/relative-luminance.html +++ b/guidelines/terms/20/relative-luminance.html @@ -43,7 +43,7 @@ <p class="note">Before May 2021 the value of 0.04045 in the definition was different (0.03928). It was taken from an older version of the specification and has been updated. It has no practical effect on the calculations in the context of these guidelines.</p> - <p class="note">Almost all systems used today to view Web content assume sRGB encoding. Unless it + <p class="note">Almost all systems used today to view web content assume sRGB encoding. Unless it is known that another color space will be used to process and display the content, authors should evaluate using sRGB colorspace. If using other color spaces, see <a href="https://www.w3.org/WAI/WCAG22/Understanding/contrast-minimum">Understanding Success Criterion 1.4.3</a>. </p> diff --git a/guidelines/terms/20/same-functionality.html b/guidelines/terms/20/same-functionality.html index a88c26f451..0ebc5e59f6 100644 --- a/guidelines/terms/20/same-functionality.html +++ b/guidelines/terms/20/same-functionality.html @@ -3,8 +3,8 @@ <p>same result when used</p> - <aside class="example"><p>A submit "search" button on one Web page and a "find" button on another Web page may - both have a field to enter a term and list topics in the Web site related to the term + <aside class="example"><p>A submit "search" button on one web page and a "find" button on another web page may + both have a field to enter a term and list topics in the website related to the term submitted. In this case, they would have the same functionality but would not be labeled consistently. </p></aside> diff --git a/guidelines/terms/20/set-of-web-pages.html b/guidelines/terms/20/set-of-web-pages.html index bf154da489..3b46403091 100644 --- a/guidelines/terms/20/set-of-web-pages.html +++ b/guidelines/terms/20/set-of-web-pages.html @@ -1,8 +1,8 @@ -<dt><dfn id="dfn-set-of-web-pages">set of Web pages</dfn></dt> +<dt><dfn id="dfn-set-of-web-pages">set of web pages</dfn></dt> <dd> - <p>collection of <a>Web pages</a> that share a common purpose and that are created by the same author, group or organization.</p> + <p>collection of <a>web pages</a> that share a common purpose and that are created by the same author, group or organization.</p> - <p class="note">Different language versions would be considered different sets of Web pages.</p> + <p class="note">Different language versions would be considered different sets of web pages.</p> </dd> diff --git a/guidelines/terms/20/structure.html b/guidelines/terms/20/structure.html index 3001e18196..bf13b6ad07 100644 --- a/guidelines/terms/20/structure.html +++ b/guidelines/terms/20/structure.html @@ -1,14 +1,14 @@ <dt><dfn id="dfn-structure">structure</dfn></dt> <dd> - <ol> + <ul> - <li>The way the parts of a <a>Web page</a> are organized in relation to each other; and + <li>The way the parts of a <a>web page</a> are organized in relation to each other; and </li> - <li>The way a collection of <a>Web pages</a> is organized + <li>The way a collection of <a>web pages</a> is organized </li> - </ol> + </ul> </dd> diff --git a/guidelines/terms/20/supplemental-content.html b/guidelines/terms/20/supplemental-content.html index 25cd2d5478..47b585666d 100644 --- a/guidelines/terms/20/supplemental-content.html +++ b/guidelines/terms/20/supplemental-content.html @@ -4,7 +4,7 @@ <p>additional <a>content</a> that illustrates or clarifies the primary content </p> - <aside class="example"><p>An audio version of a <a>Web page</a>. + <aside class="example"><p>An audio version of a <a>web page</a>. </p></aside> <aside class="example"><p>An illustration of a complex <a>process</a>. diff --git a/guidelines/terms/20/technology.html b/guidelines/terms/20/technology.html index 08c0a2aa16..5a32eaf78f 100644 --- a/guidelines/terms/20/technology.html +++ b/guidelines/terms/20/technology.html @@ -1,20 +1,20 @@ -<dt><dfn id="dfn-technologies" data-lt="technologies|web technology|web content technology|web content technologies">technology</dfn> (Web content) +<dt><dfn id="dfn-technologies" data-lt="technologies|web technology|web content technology|web content technologies">technology</dfn> (web content) </dt> <dd> <p><a>mechanism</a> for encoding instructions to be rendered, played or executed by <a>user agents</a></p> - <p class="note">As used in these guidelines "Web Technology" and the word "technology" (when used - alone) both refer to Web Content Technologies. + <p class="note">As used in these guidelines "web technology" and the word "technology" (when used + alone) both refer to web content technologies. </p> <p class="note">Web content technologies may include markup languages, data formats, or programming languages that authors may use alone or in combination to create end-user experiences - that range from static Web pages to synchronized media presentations to dynamic Web + that range from static web pages to synchronized media presentations to dynamic Web applications. </p> - <aside class="example"><p>Some common examples of Web content technologies include HTML, CSS, SVG, PNG, PDF, + <aside class="example"><p>Some common examples of web content technologies include HTML, CSS, SVG, PNG, PDF, Flash, and JavaScript. </p></aside> diff --git a/guidelines/terms/20/text-alternative.html b/guidelines/terms/20/text-alternative.html index 7b4f286670..816102ec96 100644 --- a/guidelines/terms/20/text-alternative.html +++ b/guidelines/terms/20/text-alternative.html @@ -2,7 +2,7 @@ <dd> <p><a>Text</a> that is programmatically associated with <a>non-text content</a> or referred to from text that is programmatically associated with non-text content. - Programmatically associated text is text whose location can be programmatically determined + Programmatically associated text is text whose location can be <a>programmatically determined</a> from the non-text content. </p> diff --git a/guidelines/terms/20/used-in-an-unusual-or-restricted-way.html b/guidelines/terms/20/used-in-an-unusual-or-restricted-way.html index f8628fde38..f7c4eb7b5f 100644 --- a/guidelines/terms/20/used-in-an-unusual-or-restricted-way.html +++ b/guidelines/terms/20/used-in-an-unusual-or-restricted-way.html @@ -1,14 +1,16 @@ <dt><dfn id="dfn-used-in-an-unusual-or-restricted-way">used in an unusual or restricted way</dfn></dt> <dd> - + <p>words used in such a way that requires users to know exactly which definition to apply in order to understand the content correctly </p> - - <aside class="example"><p>The term "gig" means something different if it occurs in a discussion of music concerts - than it does in article about computer hard drive space, but the appropriate definition - can be determined from context. By contrast, the word "text" is used in a very specific - way in WCAG 2.1, so a definition is supplied in the glossary. - </p></aside> - + + <aside class="example"> + <p>The term "gig" means something different if it occurs in a discussion of music concerts + than it does in article about computer hard drive space, but the appropriate definition + can be determined from context. By contrast, the word "text" is used in a very specific + way in WCAG 2, so a definition is supplied in the glossary. + </p> + </aside> + </dd> diff --git a/guidelines/terms/20/user-agent.html b/guidelines/terms/20/user-agent.html index 0f05961d96..7d9b7e2328 100644 --- a/guidelines/terms/20/user-agent.html +++ b/guidelines/terms/20/user-agent.html @@ -1,9 +1,9 @@ <dt><dfn id="dfn-user-agents" data-lt="user agents">user agent</dfn></dt> <dd> - <p>any software that retrieves and presents Web content for users</p> + <p>any software that retrieves and presents web content for users</p> - <aside class="example"><p>Web browsers, media players, plug-ins, and other programs — including <a>assistive technologies</a> — that help in retrieving, rendering, and interacting with Web content. + <aside class="example"><p>Web browsers, media players, plug-ins, and other programs — including <a>assistive technologies</a> — that help in retrieving, rendering, and interacting with web content. </p></aside> </dd> diff --git a/guidelines/terms/20/viewport.html b/guidelines/terms/20/viewport.html index 26db33dc02..c3bcd3f8b8 100644 --- a/guidelines/terms/20/viewport.html +++ b/guidelines/terms/20/viewport.html @@ -1,9 +1,9 @@ <dt><dfn id="dfn-viewport">viewport</dfn></dt> <dd> - <p>object in which the user agent presents content</p> + <p>object in which the <a>user agent</a> presents content</p> - <p class="note">The <a>user agent</a> presents content through one or more viewports. Viewports include windows, frames, + <p class="note">The user agent presents content through one or more viewports. Viewports include windows, frames, loudspeakers, and virtual magnifying glasses. A viewport may contain another viewport (e.g., nested frames). Interface components created by the user agent such as prompts, menus, and alerts are not viewports. diff --git a/guidelines/terms/20/web-page.html b/guidelines/terms/20/web-page.html index bdbf6b5a07..b15bbc58c8 100644 --- a/guidelines/terms/20/web-page.html +++ b/guidelines/terms/20/web-page.html @@ -1,4 +1,4 @@ -<dt><dfn id="dfn-web-page-s" data-lt="web page(s)|web pages">Web page</dfn></dt> +<dt><dfn id="dfn-web-page-s" data-lt="web page(s)|web pages">web page</dfn></dt> <dd> <p>a non-embedded resource obtained from a single URI using HTTP plus any other resources @@ -9,12 +9,12 @@ </p> <p class="note">For the purposes of conformance with these guidelines, a resource must be "non-embedded" - within the scope of conformance to be considered a Web page. + within the scope of conformance to be considered a web page. </p> - <aside class="example"><p>A Web resource including all embedded images and media.</p></aside> + <aside class="example"><p>A web resource including all embedded images and media.</p></aside> - <aside class="example"><p>A Web mail program built using Asynchronous JavaScript and XML (AJAX). The program + <aside class="example"><p>A web mail program built using Asynchronous JavaScript and XML (AJAX). The program lives entirely at http://example.com/mail, but includes an inbox, a contacts area and a calendar. Links or buttons are provided that cause the inbox, contacts, or calendar to display, but do not change the URI of the page as a whole. @@ -28,8 +28,8 @@ interactive shopping environment where you visually move around in a store dragging products off of the shelves around you and into a visual shopping cart in front of you. Clicking on a product causes it to be demonstrated with a specification sheet - floating alongside. This might be a single-page Web site or just one page within a - Web site. + floating alongside. This might be a single-page website or just one page within a + website. </p></aside> </dd> diff --git a/guidelines/terms/21/region.html b/guidelines/terms/21/region.html index bc94cc0675..c01040d677 100644 --- a/guidelines/terms/21/region.html +++ b/guidelines/terms/21/region.html @@ -1,5 +1,5 @@ <dt><dfn id="dfn-regions" data-lt="regions">region</dfn></dt> <dd> - <p>perceivable, programmatically determined section of content</p> + <p>perceivable, <a>programmatically determined</a> <a>section</a> of content</p> <p class="note">In HTML, any area designated with a landmark role would be a region.</p> </dd> diff --git a/guidelines/terms/21/set-of-web-pages.html b/guidelines/terms/21/set-of-web-pages.html index f435a86c58..c79b7cbb15 100644 --- a/guidelines/terms/21/set-of-web-pages.html +++ b/guidelines/terms/21/set-of-web-pages.html @@ -6,11 +6,11 @@ <aside class="example"><p>Examples include:</p> <ul> - <li>a publication which is split across multiple Web pages, where each page contains one chapter or other significant section of the work. The publication is logically a single contiguous unit, and contains navigation features that enable access to the full set of pages.</li> - <li>an e-commerce website shows products in a set of Web pages that all share the same navigation and identification. However, when progressing to the checkout process, the template changes; the navigation and other elements are removed, so the pages in that process are functionally and visually different. The checkout pages are not part of the set of product pages.</li> + <li>a publication which is split across multiple web pages, where each page contains one chapter or other significant section of the work. The publication is logically a single contiguous unit, and contains navigation features that enable access to the full set of pages.</li> + <li>an e-commerce website shows products in a set of web pages that all share the same navigation and identification. However, when progressing to the checkout process, the template changes; the navigation and other elements are removed, so the pages in that process are functionally and visually different. The checkout pages are not part of the set of product pages.</li> <li>a blog on a sub-domain (e.g. blog.example.com) which has a different navigation and is authored by a distinct set of people from the pages on the primary domain (example.com).</li> </ul></aside> - <p class="note">Different language versions would be considered different sets of Web pages.</p> + <p class="note">Different language versions would be considered different sets of web pages.</p> </dd> diff --git a/guidelines/terms/21/single-pointer.html b/guidelines/terms/21/single-pointer.html index 7f0001968a..bc1a6cf1f3 100644 --- a/guidelines/terms/21/single-pointer.html +++ b/guidelines/terms/21/single-pointer.html @@ -1,6 +1,6 @@ <dt><dfn id="dfn-single-pointer">single pointer</dfn></dt> <dd> - <p>an input that only targets a single point on the page/screen at a time – such as a mouse, single finger on a touch screen, or stylus.</p> - <p class="note">In contrast to single pointer inputs, multipoint interactions involve the use of two or more pointers at the same time – such as two finger interactions on a touchscreen, or the simultaneous use of a mouse and stylus.</p> + <p>an input modality that only targets a single point on the page/screen at a time – such as a mouse, single finger on a touch screen, or stylus.</p> + <p class="note">Single pointer interactions include clicks, double clicks, taps, dragging motions, and single-finger swipe gestures. In contrast, multipoint interactions involve the use of two or more pointers at the same time, such as two-finger interactions on a touchscreen, or the simultaneous use of a mouse and stylus.</p> </dd> diff --git a/guidelines/terms/21/state.html b/guidelines/terms/21/state.html index 6910f5c3bc..14ef0d8707 100644 --- a/guidelines/terms/21/state.html +++ b/guidelines/terms/21/state.html @@ -1,6 +1,6 @@ <dt><dfn id="dfn-states" data-lt="states">state</dfn></dt> <dd> - <p>dynamic property expressing characteristics of a user interface component that may change in response to user action or automated processes</p> + <p>dynamic property expressing characteristics of a <a>user interface component</a> that may change in response to user action or automated processes</p> <p>States do not affect the nature of the component, but represent data associated with the component or user interaction possibilities. Examples include focus, hover, select, press, check, visited/unvisited, and expand/collapse.</p> </dd> diff --git a/guidelines/terms/21/status-message.html b/guidelines/terms/21/status-message.html index 12711848c1..95094991ef 100644 --- a/guidelines/terms/21/status-message.html +++ b/guidelines/terms/21/status-message.html @@ -1,6 +1,6 @@ <dt><dfn id="dfn-status-messages" data-lt="status messages">status message</dfn></dt> <dd> - <p>change in content that is not a <a>change of context</a>, and that provides information to the user on the success or results of an action, on the waiting state of an application, on the progress of a process, or on the existence of errors</p> + <p>change in content that is not a <a>change of context</a>, and that provides information to the user on the success or results of an action, on the waiting state of an application, on the progress of a <a>process</a>, or on the existence of errors</p> </dd> diff --git a/guidelines/terms/21/target.html b/guidelines/terms/21/target.html index ab36d394cc..02fd3a3b60 100644 --- a/guidelines/terms/21/target.html +++ b/guidelines/terms/21/target.html @@ -1,7 +1,7 @@ <dt><dfn id="dfn-targets" data-lt="targets">target</dfn></dt> <dd> - <p>region of the display that will accept a pointer action, such as the interactive area of a user interface component</p> + <p>region of the display that will accept a pointer action, such as the interactive area of a <a>user interface component</a></p> <p class="note">If two or more targets are overlapping, the overlapping area should not be included in the measurement of the target size, except when the overlapping targets perform the same action or open the same page.</p> </dd> diff --git a/guidelines/terms/21/user-inactivity.html b/guidelines/terms/21/user-inactivity.html index df98f1eb5c..82330566ed 100644 --- a/guidelines/terms/21/user-inactivity.html +++ b/guidelines/terms/21/user-inactivity.html @@ -1,5 +1,5 @@ <dt><dfn id="dfn-user-inactivity">user inactivity</dfn></dt> <dd> <p>any continuous period of time where no user actions occur</p> - <p>The method of tracking will be determined by the web site or application.</p> + <p>The method of tracking will be determined by the website or application.</p> </dd> diff --git a/guidelines/terms/22/cognitive-function-test.html b/guidelines/terms/22/cognitive-function-test.html index 757a5161a8..e2674ea400 100644 --- a/guidelines/terms/22/cognitive-function-test.html +++ b/guidelines/terms/22/cognitive-function-test.html @@ -1,15 +1,12 @@ -<dt class="new"><dfn id="dfn-cognitive-function-test" data-lt="cognitive function test">Cognitive function test</dfn></dt> +<dt class="new"><dfn id="dfn-cognitive-function-test" data-lt="Cognitive function test">cognitive function test</dfn></dt> <dd class="new"> - - <p class="change">New</p> - - <p>A task that requires the user to remember, manipulate, or transcribe information. Examples include, but are not limited to:</p> - <ul> - <li>memorization, such as remembering a username, password, set of characters, images, or patterns. The common identifiers name, e-mail, and phone number are not considered cognitive function tests as they are personal to the user and consistent across Web sites;</li> - <li>transcription, such as typing in characters;</li> - <li>use of correct spelling;</li> - <li>performance of calculations;</li> - <li>solving of puzzles.</li> + <p class="change">New</p> + <p>A task that requires the user to remember, manipulate, or transcribe information. Examples include, but are not limited to:</p> + <ul> + <li>memorization, such as remembering a username, password, set of characters, images, or patterns. The common identifiers name, e-mail, and phone number are not considered cognitive function tests as they are personal to the user and consistent across websites;</li> + <li>transcription, such as typing in characters;</li> + <li>use of correct spelling;</li> + <li>performance of calculations;</li> + <li>solving of puzzles.</li> </ul> - </dd> diff --git a/guidelines/terms/22/encloses.html b/guidelines/terms/22/encloses.html deleted file mode 100644 index b601c7661c..0000000000 --- a/guidelines/terms/22/encloses.html +++ /dev/null @@ -1,7 +0,0 @@ -<dt class="new"><dfn id="dfn-enclose" data-lt="enclose">encloses</dfn></dt> -<dd class="new"> - <p class="change">New</p> - - <p>solidly bounds or surrounds</p> - -</dd> diff --git a/guidelines/terms/22/minimum-bounding-box.html b/guidelines/terms/22/minimum-bounding-box.html index 60627b5b59..90470a675b 100644 --- a/guidelines/terms/22/minimum-bounding-box.html +++ b/guidelines/terms/22/minimum-bounding-box.html @@ -1,6 +1,6 @@ <dt class="new"><dfn id="dfn-bounding-boxes" data-lt="bounding boxes|bounding box">minimum bounding box</dfn></dt> <dd class="new"> <p class="change">New</p> - <p>the smallest enclosing rectangle aligned to the horizontal axis within which all the points of a shape lie. For components which wrap onto multiple lines as part of a sentence or block of text (such as hypertext links), the bounding box is based on how the component would appear on a single line.</p> + <p>the smallest enclosing rectangle aligned to the horizontal axis within which all the points of a shape lie. For components which wrap onto multiple lines as part of a sentence or <a>block of text</a> (such as hypertext links), the bounding box is based on how the component would appear on a single line.</p> </dd> diff --git a/guidelines/wcag.json b/guidelines/wcag.json index 8e1bdcf24e..62e9866614 100644 --- a/guidelines/wcag.json +++ b/guidelines/wcag.json @@ -442,7 +442,7 @@ "TECH:G144" , "title": - "Ensuring that the Web Page contains another CAPTCHA serving the same purpose using a different modality" + "Ensuring that the web page contains another CAPTCHA serving the same purpose using a different modality" } ]} @@ -1423,7 +1423,7 @@ "TECH:G157" , "title": - "Incorporating a live audio captioning service into a Web page" + "Incorporating a live audio captioning service into a web page" } ]}, @@ -2384,7 +2384,7 @@ "versions": ["2.0", "2.1", "2.2"], "level": "A", "handle": "Audio Control", - "title": "If any audio on a Web page plays automatically for more than 3 seconds, either a mechanism is available to pause or stop the audio, or a mechanism is available to control audio volume independently from the overall system volume level.", + "title": "If any audio on a web page plays automatically for more than 3 seconds, either a mechanism is available to pause or stop the audio, or a mechanism is available to control audio volume independently from the overall system volume level.", "techniques": [ {"sufficient": [ @@ -2402,7 +2402,7 @@ "TECH:G170" , "title": - "Providing a control near the beginning of the Web page that turns off sounds that play automatically" + "Providing a control near the beginning of the web page that turns off sounds that play automatically" } , { @@ -2672,7 +2672,7 @@ "TECH:G178" , "title": - "Providing controls on the Web page that allow users to incrementally change the size of all text on the page up to 200 percent" + "Providing controls on the web page that allow users to incrementally change the size of all text on the page up to 200 percent" } , { @@ -4012,7 +4012,7 @@ "TECH:G186" , "title": - "Using a control in the Web page that stops moving, blinking, or auto-updating content" + "Using a control in the web page that stops moving, blinking, or auto-updating content" } , { @@ -4399,7 +4399,7 @@ "versions": ["2.0", "2.1", "2.2"], "level": "A", "handle": "Bypass Blocks", - "title": "A mechanism is available to bypass blocks of content that are repeated on multiple Web pages.", + "title": "A mechanism is available to bypass blocks of content that are repeated on multiple web pages.", "techniques": [ {"sufficient": [ @@ -4547,7 +4547,7 @@ "TECH:G88" , "title": - "Providing descriptive titles for Web pages" + "Providing descriptive titles for web pages" , "using": [ @@ -4579,7 +4579,7 @@ "TECH:G127" , "title": - "Identifying a Web page's relationship to a larger collection of Web pages" + "Identifying a web page's relationship to a larger collection of web pages" } ]}, @@ -4590,7 +4590,7 @@ "TECH:F25" , "title": - "Failure of Success Criterion 2.4.2 due to the title of a Web page not identifying the contents" + "Failure of Success Criterion 2.4.2 due to the title of a web page not identifying the contents" } ]}] @@ -4602,7 +4602,7 @@ "versions": ["2.0", "2.1", "2.2"], "level": "A", "handle": "Focus Order", - "title": "If a Web page can be navigated sequentially and the navigation sequences affect meaning or operation, focusable components receive focus in an order that preserves meaning and operability.", + "title": "If a web page can be navigated sequentially and the navigation sequences affect meaning or operation, focusable components receive focus in an order that preserves meaning and operability.", "techniques": [ {"sufficient": [ @@ -4649,7 +4649,7 @@ "TECH:future-focus-order-1" , "title": - "Changing a Web page dynamically using one of the following techniques:" + "Changing a web page dynamically using one of the following techniques:" , "using": [ @@ -4755,7 +4755,7 @@ "TECH:G189" , "title": - "Providing a control near the beginning of the Web page that changes the link text" + "Providing a control near the beginning of the web page that changes the link text" } , { @@ -4944,7 +4944,7 @@ "versions": ["2.0", "2.1", "2.2"], "level": "AA", "handle": "Multiple Ways", - "title": "More than one way is available to locate a Web page within a set of Web pages except where the Web Page is the result of, or a step in, a process.", + "title": "More than one way is available to locate a web page within a set of web pages except where the web page is the result of, or a step in, a process.", "techniques": [ {"sufficient": [ @@ -4963,7 +4963,7 @@ "TECH:G125" , "title": - "Providing links to navigate to related Web pages" + "Providing links to navigate to related web pages" } , { @@ -4995,7 +4995,7 @@ "TECH:G126" , "title": - "Providing a list of links to all other Web pages" + "Providing a list of links to all other web pages" } , { @@ -5161,7 +5161,7 @@ "versions": ["2.0", "2.1", "2.2"], "level": "AAA", "handle": "Location", - "title": "Information about the user's location within a set of Web pages is available.", + "title": "Information about the user's location within a set of web pages is available.", "techniques": [ {"sufficient": [ @@ -5195,7 +5195,7 @@ "TECH:G127" , "title": - "Identifying a Web page's relationship to a larger collection of Web pages" + "Identifying a web page's relationship to a larger collection of web pages" , "using": [ @@ -5293,7 +5293,7 @@ "TECH:G189" , "title": - "Providing a control near the beginning of the Web page that changes the link text" + "Providing a control near the beginning of the web page that changes the link text" } , { @@ -6036,7 +6036,7 @@ "versions": ["2.0", "2.1", "2.2"], "level": "A", "handle": "Language of Page", - "title": "The default human language of each Web page can be programmatically determined.", + "title": "The default human language of each web page can be programmatically determined.", "techniques": [ {"sufficient": [ @@ -6131,7 +6131,7 @@ {"situations": [ - {"title": "Situation A: If the word or phrase has a unique meaning within the Web page:", + {"title": "Situation A: If the word or phrase has a unique meaning within the web page:", "techniques": [ { @@ -6240,7 +6240,7 @@ } ]}, - {"title": "Situation B: If the word or phrase means different things within the same Web page:", + {"title": "Situation B: If the word or phrase means different things within the same web page:", "techniques": [ { @@ -6323,7 +6323,7 @@ {"situations": [ - {"title": "Situation A: If the abbreviation has only one meaning within the Web page:", + {"title": "Situation A: If the abbreviation has only one meaning within the web page:", "techniques": [ { @@ -6425,7 +6425,7 @@ } ]}, - {"title": "Situation B: If the abbreviation means different things within the same Web page:", + {"title": "Situation B: If the abbreviation means different things within the same web page:", "techniques": [ { @@ -6605,7 +6605,7 @@ "num": "3.2", "versions": ["2.0", "2.1", "2.2"], "handle": "Predictable", - "title": "Make Web pages appear and operate in predictable ways.", + "title": "Make web pages appear and operate in predictable ways.", "successcriteria": [ { @@ -6764,7 +6764,7 @@ "versions": ["2.0", "2.1", "2.2"], "level": "AA", "handle": "Consistent Navigation", - "title": "Navigational mechanisms that are repeated on multiple Web pages within a set of Web pages occur in the same relative order each time they are repeated, unless a change is initiated by the user.", + "title": "Navigational mechanisms that are repeated on multiple web pages within a set of web pages occur in the same relative order each time they are repeated, unless a change is initiated by the user.", "techniques": [ {"sufficient": [ @@ -6816,7 +6816,7 @@ "versions": ["2.0", "2.1", "2.2"], "level": "AA", "handle": "Consistent Identification", - "title": "Components that have the same functionality within a set of Web pages are identified consistently.", + "title": "Components that have the same functionality within a set of web pages are identified consistently.", "techniques": [ {"sufficient": [ @@ -6844,7 +6844,7 @@ "TECH:F31" , "title": - "Failure of Success Criterion 3.2.4 due to using two different labels for the same function on different Web pages within a set of Web pages" + "Failure of Success Criterion 3.2.4 due to using two different labels for the same function on different web pages within a set of web pages" } ]}] @@ -6863,7 +6863,7 @@ {"situations": [ - {"title": "Situation A: If the Web page allows automatic updates:", + {"title": "Situation A: If the web page allows automatic updates:", "techniques": [ { @@ -6908,7 +6908,7 @@ } ]}, - {"title": "Situation C: If the Web page uses pop-up windows:", + {"title": "Situation C: If the web page uses pop-up windows:", "techniques": [ { @@ -7034,7 +7034,7 @@ "versions": ["2.2"], "level": "A", "handle": "Consistent Help", - "title": "If a Web page contains any of the following help mechanisms, and those mechanisms are repeated on multiple Web pages within a set of Web pages, they occur in the same order relative to other page content, unless a change is initiated by the user:", + "title": "If a web page contains any of the following help mechanisms, and those mechanisms are repeated on multiple web pages within a set of web pages, they occur in the same order relative to other page content, unless a change is initiated by the user:", "techniques": [ {"sufficient": [ @@ -7491,7 +7491,7 @@ "versions": ["2.0", "2.1", "2.2"], "level": "AA", "handle": "Error Prevention (Legal, Financial, Data)", - "title": "For Web pages that cause legal commitments or financial transactions for the user to occur, that modify or delete user-controllable data in data storage systems, or that submit user test responses, at least one of the following is true:", + "title": "For web pages that cause legal commitments or financial transactions for the user to occur, that modify or delete user-controllable data in data storage systems, or that submit user test responses, at least one of the following is true:", "details": [{ "type": "ulist", @@ -7573,7 +7573,7 @@ } ]}, - {"title": "Situation C: If the Web page includes a testing application:", + {"title": "Situation C: If the web page includes a testing application:", "techniques": [ { @@ -7641,7 +7641,7 @@ "TECH:G71" , "title": - "Providing a help link on every Web page" + "Providing a help link on every web page" } , { @@ -7649,7 +7649,7 @@ "TECH:G193" , "title": - "Providing help by an assistant in the Web page" + "Providing help by an assistant in the web page" } , { @@ -7714,7 +7714,7 @@ "versions": ["2.0", "2.1", "2.2"], "level": "AAA", "handle": "Error Prevention (All)", - "title": "For Web pages that require the user to submit information, at least one of the following is true:", + "title": "For web pages that require the user to submit information, at least one of the following is true:", "details": [{ "type": "ulist", @@ -7809,7 +7809,7 @@ }, { "handle": "Personal Content", - "text": "The cognitive function test is to identify non-text content the user provided to the Web site." + "text": "The cognitive function test is to identify non-text content the user provided to the website." } ] }], @@ -7995,7 +7995,7 @@ "TECH:G134" , "title": - "Validating Web pages" + "Validating web pages" } , { @@ -8019,7 +8019,7 @@ "TECH:future-parsing-1" , "title": - "Ensuring that Web pages can be parsed by using one of the following techniques:" + "Ensuring that web pages can be parsed by using one of the following techniques:" , "using": [ @@ -8038,7 +8038,7 @@ "TECH:H93" , "title": - "Ensuring that id attributes are unique on a Web page" + "Ensuring that id attributes are unique on a web page" } , { @@ -8056,7 +8056,7 @@ "TECH:H75" , "title": - "Ensuring that Web pages are well-formed" + "Ensuring that web pages are well-formed" } ] @@ -8469,7 +8469,7 @@ "TECH:G193" , "title": - "Providing help by an assistant in the Web page" + "Providing help by an assistant in the web page" } ]} diff --git a/index.html b/index.html index 9fcfa92eb7..56183d90c5 100644 --- a/index.html +++ b/index.html @@ -1,3 +1,9 @@ +---js +// Same condition used for copying guidelines assets in eleventy.config.ts +const includeGuidelines = process.env.COMMIT_REF && !process.env.WCAG_MODE; +const repoUrl = process.env.REPOSITORY_URL; +const prNumber = process.env.REVIEW_ID; +--- <!DOCTYPE html> <html lang="en"> <head> @@ -6,7 +12,16 @@ </head> <body> <h1>Web Content Accessibility Guidelines {{ versionDecimal }}</h1> + {% if repoUrl and prNumber -%} + <p> + <strong>Note:</strong> This is a <strong>preview</strong> for + <a href="{{ repoUrl }}/pull/{{ prNumber }}">PR #{{ prNumber }}</a>. + </p> + {%- endif %} <ul> + {% if includeGuidelines -%} + <li><a href="guidelines/">Guidelines</a></li> + {%- endif %} <li><a href="techniques/">Techniques</a></li> <li><a href="understanding/">Understanding Docs</a></li> </ul> diff --git a/package-lock.json b/package-lock.json index 8f37dfbe7d..ae0a1551f2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "license": "W3C", "dependencies": { "@11ty/eleventy": "^3.0.0", + "axios": "^1.7.7", "cheerio": "^1.0.0", "glob": "^10.3.16", "gray-matter": "^4.0.3", @@ -800,6 +801,21 @@ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", + "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -1076,6 +1092,17 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/commander": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", @@ -1090,9 +1117,9 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -1216,6 +1243,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -1570,6 +1605,25 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, "node_modules/foreground-child": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", @@ -1585,6 +1639,19 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/form-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -2117,6 +2184,25 @@ "node": ">=10.0.0" } }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/minimatch": { "version": "9.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", @@ -2448,6 +2534,11 @@ "asap": "~2.0.3" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", diff --git a/package.json b/package.json index b481b35df8..b0228583da 100644 --- a/package.json +++ b/package.json @@ -9,12 +9,14 @@ "check": "tsc", "fmt": "prettier . -w", "publish-w3c": "WCAG_MODE=publication npm run build && tsx 11ty/cp-cvs.ts", + "publish-w3c:21": "WCAG_VERSION=21 WCAG_MODE=publication npm run build && WCAG_VERSION=21 tsx 11ty/cp-cvs.ts", "start": "npm run build -- --serve --incremental" }, "author": "W3C", "license": "W3C", "dependencies": { "@11ty/eleventy": "^3.0.0", + "axios": "^1.7.7", "cheerio": "^1.0.0", "glob": "^10.3.16", "gray-matter": "^4.0.3", diff --git a/script/wcag.js b/script/wcag.js index dbb4d64bd5..8193d6ae71 100644 --- a/script/wcag.js +++ b/script/wcag.js @@ -33,11 +33,6 @@ function linkUnderstanding() { } function addTextSemantics() { - // put brackets around the change marker - document.querySelectorAll('p.change').forEach(function(node){ - var change = node.textContent; - node.textContent = "[" + change + "]"; - }) // put level before and parentheses around the conformance level marker document.querySelectorAll('p.conformance-level').forEach(function(node){ var level = node.textContent; diff --git a/techniques/css/C43.html b/techniques/css/C43.html index 0295e33221..ee3d14329f 100644 --- a/techniques/css/C43.html +++ b/techniques/css/C43.html @@ -167,12 +167,14 @@ <h3>Procedure</h3> <p>For each user interface component that can receive keyboard focus:</p> <ol> <li>Check that the user interface component is not entirely hidden when it receives keyboard focus.</li> + <li>Check that no part of the user interface component is hidden when it receives keyboard focus.</li> </ol> </section> <section class="test-results"> <h3>Expected Results</h3> <ul> <li>Check #1 is true.</li> + <li>For Focus Not Obscured (Enhanced) (Level AAA), #2 is also true.</li> </ul> </section> </section> diff --git a/techniques/failures/F52.html b/techniques/failures/F52.html index 1a5d41d78d..8ac67caca3 100644 --- a/techniques/failures/F52.html +++ b/techniques/failures/F52.html @@ -1,4 +1,4 @@ -<!DOCTYPE html><html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"><head><title>Failure of Success Criterion 3.2.1 and 3.2.5 due to opening a new window as soon as a new page is loaded</title><link rel="stylesheet" type="text/css" href="../../css/editors.css" class="remove"/></head><body><h1>Failure of Success Criterion 3.2.1 and 3.2.5 due to opening a new window as soon as a new page is loaded</h1><section class="meta"><p class="id">ID: F52</p><p class="technology">Technology: failures</p><p class="type">Type: Failure</p></section><section id="applicability"><h2>When to Use</h2> +<!DOCTYPE html><html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"><head><title>Failure of Success Criterion 3.2.5 due to opening a new window as soon as a new page is loaded</title><link rel="stylesheet" type="text/css" href="../../css/editors.css" class="remove"/></head><body><h1>Failure of Success Criterion 3.2.5 due to opening a new window as soon as a new page is loaded</h1><section class="meta"><p class="id">ID: F52</p><p class="technology">Technology: failures</p><p class="type">Type: Failure</p></section><section id="applicability"><h2>When to Use</h2> <p>Applies when scripting is used to open new windows. </p> </section><section id="description"><h2>Description</h2> <p> Some Web sites open a new window when a page is loaded, to advertise a @@ -41,4 +41,4 @@ <h3>example commonly used to open new windows when pages are loaded</h3> </ul></section><section id="resources"><h2>Resources</h2> </section> -</body></html> \ No newline at end of file +</body></html> diff --git a/techniques/general/G10.html b/techniques/general/G10.html index bc7c3a7ac7..2e8b19ab8a 100644 --- a/techniques/general/G10.html +++ b/techniques/general/G10.html @@ -31,12 +31,6 @@ Using the Java swing classes they are able to create an interface component that exposes its name and role, is able to be set by AT and alerts AT to any updates.</li> - <li>A Web page uses an original ActiveX control that is - written in the C++ programming language. The control is written to - explicitly support the Microsoft Active Accessibility (MSAA) API to - expose information about accept commands. The control then interacts - directly with assistive technology running the user agent on systems - that support MSAA.</li> </ul> </section><section id="tests"><h2>Tests</h2> <section class="procedure"><h3>Procedure</h3> diff --git a/techniques/html/H35.html b/techniques/html/H35.html index ac1365cabb..6af96accd7 100644 --- a/techniques/html/H35.html +++ b/techniques/html/H35.html @@ -1,5 +1,8 @@ --- -obsoleteMessage: The Java-specific <code class="el">applet</code> element is obsolete. +obsoleteMessage: | + The Java-specific <code>applet</code> element is + <a href="https://html.spec.whatwg.org/multipage/obsolete.html#applet">obsolete in the HTML Living Standard</a>. + Use <code>embed</code> or <code>object</code> instead. obsoleteSince: 20 --- <!DOCTYPE html><html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"><head><title> Providing text alternatives on applet elements </title><link rel="stylesheet" type="text/css" href="../../css/sources.css" class="remove"></link></head><body><h1> Providing text alternatives on <code class="el">applet</code> elements </h1><section class="meta"><p class="id">ID: H35</p><p class="technology">Technology: html</p><p class="type">Type: Technique</p></section><section id="applicability"><h2>When to Use</h2> diff --git a/techniques/html/H45.html b/techniques/html/H45.html index d1a5710b77..5ba88c0615 100644 --- a/techniques/html/H45.html +++ b/techniques/html/H45.html @@ -1,5 +1,9 @@ --- -obsoleteMessage: The <code class="att">longdesc</code> attribute is obsolete and not widely supported. +obsoleteMessage: | + The <code>longdesc</code> attribute is + <a href="https://html.spec.whatwg.org/multipage/obsolete.html#attr-img-longdesc">obsolete in the HTML Living Standard</a>, + and was never widely supported. + Use an <code>a</code> element or an image map to link to the description. obsoleteSince: 20 --- <!DOCTYPE html><html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"><head><title>Using longdesc</title><link rel="stylesheet" type="text/css" href="../../css/sources.css" class="remove"></link></head><body><h1>Using longdesc</h1><section class="meta"><p class="id">ID: H45</p><p class="technology">Technology: html</p><p class="type">Type: Technique</p></section><section id="applicability"><h2>When to Use</h2> diff --git a/techniques/html/H46.html b/techniques/html/H46.html index 63e9ce92df..c1fdc86f0b 100644 --- a/techniques/html/H46.html +++ b/techniques/html/H46.html @@ -1,5 +1,8 @@ --- -obsoleteMessage: <code class="el">noembed</code> is obsolete. Use <code class="el">object</code> instead when fallback is necessary. +obsoleteMessage: | + <code>noembed</code> is + <a href="https://html.spec.whatwg.org/multipage/obsolete.html#noembed">obsolete in the HTML Living Standard</a>. + Use <code>object</code> instead when fallback is necessary. obsoleteSince: 20 --- <!DOCTYPE html><html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"><head><title>Using noembed with embed diff --git a/techniques/html/H59.html b/techniques/html/H59.html index ac82bda502..2cbe03f493 100644 --- a/techniques/html/H59.html +++ b/techniques/html/H59.html @@ -1,5 +1,5 @@ --- -obsoleteMessage: <code class="att">prev</code> and <code class="att">next</code> typically have no effect on browser navigation controls. +obsoleteMessage: <code>prev</code> and <code>next</code> typically have no effect on browser navigation controls. obsoleteSince: 20 --- <!DOCTYPE html> diff --git a/techniques/html/H70.html b/techniques/html/H70.html index b8ca99df01..5646c8ec0d 100644 --- a/techniques/html/H70.html +++ b/techniques/html/H70.html @@ -1,5 +1,9 @@ --- -obsoleteMessage: The <code class="el">frameset</code> and <code class="el">frame</code> elements are obsolete. +obsoleteMessage: | + The <code>frameset</code> and <code>frame</code> elements are + <a href="https://html.spec.whatwg.org/multipage/obsolete.html#non-conforming-features:frameset">obsolete in the HTML Living Standard</a>. + Either use <code>iframe</code> and CSS instead, + or use server-side includes to generate complete pages with the various invariant parts merged in. obsoleteSince: 20 --- <!DOCTYPE html><html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"><head><title>Using frame elements to group blocks of repeated material</title><link rel="stylesheet" type="text/css" href="../../css/sources.css" class="remove"></link></head><body><h1>Using frame elements to group blocks of repeated material</h1><section class="meta"><p class="id">ID: H70</p><p class="technology">Technology: html</p><p class="type">Type: Technique</p></section><section id="applicability"><h2>When to Use</h2> diff --git a/techniques/html/H73.html b/techniques/html/H73.html index 7f8aeb9626..7d7d3412ec 100644 --- a/techniques/html/H73.html +++ b/techniques/html/H73.html @@ -1,5 +1,8 @@ --- -obsoleteMessage: The <code class="att">summary</code> attribute is obsolete as of HTML5. +obsoleteMessage: | + The <code>summary</code> attribute is + <a href="https://html.spec.whatwg.org/multipage/obsolete.html#attr-table-summary">obsolete in the HTML Living Standard</a>. + Use one of the <a href="https://html.spec.whatwg.org/multipage/tables.html#table-descriptions-techniques">techniques for describing tables</a> instead. obsoleteSince: 20 --- <!DOCTYPE html><html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"><head><title>Using the summary attribute of the table element to give an overview of data diff --git a/techniques/index.html b/techniques/index.html index 2f6f6245dc..ecdb524b35 100644 --- a/techniques/index.html +++ b/techniques/index.html @@ -4,7 +4,7 @@ <meta charset="UTF-8"/> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/> - <title>All WCAG 2.2 Techniques | WAI | W3C</title> + <title>All WCAG {{ versionDecimal }} Techniques | WAI | W3C</title> <link rel="stylesheet" href="https://w3.org/WAI/assets/css/style.css"/> <link rel="stylesheet" type="text/css" href="base.css"/> </head> @@ -34,7 +34,7 @@ </aside> <main id="main" class="main-content standalone-resource__main"> - <h1 id="title" class="title p-name">Techniques for WCAG 2.2</h1> + <h1 id="title" class="title p-name">Techniques for WCAG {{ versionDecimal }}</h1> <aside class="box"> <header class="box-h ">Summary</header> <div class="box-i"> @@ -47,41 +47,7 @@ <h1 id="title" class="title p-name">Techniques for WCAG 2.2</h1> <section id="changelog"> <h2>Change Log</h2> <p>A list of new, removed or significantly updated techniques:</p> - <ol> - <li><time datetime="2024-05-04">4 May 2024</time>: Removed F87 Failure of Success Criterion 1.3.1 due to inserting non-decorative content by using :before and :after pseudo-elements and the 'content' property in CSS</li> - <li><time datetime="2020-07-15">15 July 2020</time>: Removed Flash techniques.</li> - <li><time datetime="2019-09-12">12 Sept 2019</time>: Added <a href="failures/F105">Failure of Success Criterion 2.5.1 due to providing functionality via a path-based gesture without simple pointer alternative</a></li> - <li><time datetime="2019-09-12">12 Sept 2019</time>: Added <a href="failures/F106">Failure due to inability to deactivate motion actuation</a></li> - <li><time datetime="2019-09-03">3 Sept 2019</time>: Added <a href="failures/F104">Failure of Success Criterion 1.4.12 due to clipped or overlapped content when text spacing is adjusted</a></li> - <li><time datetime="2019-09-03">3 Sept 2019</time>: Added <a href="failures/F103">Failure of Success Criterion 4.1.3 due to providing status messages that cannot be programmatically determined through role or properties</a></li> - <li><time datetime="2019-08-06">6 Aug 2019</time>: Added <a href="failures/F102">Failure of Success Criterion 1.4.10 due to content disappearing and not being available when content has reflowed</a></li> - <li><time datetime="2019-07-16">16 Jul 2019</time>: Added <a href="general/G216">Providing single point activation for a control slider</a></li> - <li><time datetime="2019-07-16">16 Jul 2019</time>: Added <a href="general/G215">Providing controls to achieve the same result as path based or multipoint gestures</a></li> - <li><time datetime="2019-07-16">16 Jul 2019</time>: Added <a href="failures/F100">Failure of Success Criterion 1.3.4 due to showing a message asking to reorient device</a></li> - <li><time datetime="2019-07-16">16 Jul 2019</time>: Added <a href="general/G214">Using a control to allow access to content in different orientations which is otherwise restricted</a></li> - <li><time datetime="2019-07-10">10 Jul 2019</time>: Added <a href="css/C40">Creating a two-color focus indicator to ensure sufficient contrast</a></li> - <li><time datetime="2019-07-10">10 Jul 2019</time>: Added <a href="failures/F99">Failure of Success Criterion 2.1.4 due to implementing character key shortcuts that cannot be turned off or remapped</a></li> - <li><time datetime="2019-07-10">10 Jul 2019</time>: Added <a href="client-side-script/SCR39">Making content on focus or hover hoverable, dismissible, and persistent</a></li> - <li><time datetime="2019-06-18">18 Jun 2019</time>: Added <a href="general/G212">Using native controls to ensure functionality is triggered on the up-event</a></li> - <li><time datetime="2019-06-11">Jun 11 2019</time>: Added <a href="failures/F98">Failure of Success Criterion 2.5.6 due to interactions being limited to touch-only on touchscreen devices</a></li> - <li><time datetime="2019-06-18">18 Jun 2019</time>: Added <a href="general/G213">Provide conventional controls and an application setting for motion activated input</a></li> - <li><time datetime="2019-05-25">25 May 2019</time>: Added <a href="aria/ARIA24">Semantically identifying a font icon with role="img"</a></li> - <li><time datetime="2019-04-20">26 Apr 2019</time>: Added <a href="failures/F97">Failure due to locking the orientation to landscape or portrait view</a></li> - <li><time datetime="2019-02-26">26 Feb 2019</time>: Removed <a href="failures/F52">F52</a> from SC 3.2.1 (still attached to SC 3.2.5)</li> - <li><time datetime="2019-02-26">26 Feb 2019</time>: Added <a href="general/G209">Provide sufficient contrast at the boundaries between adjoining colors</a></li> - <li><time datetime="2019-01-10">10 Jan 2019</time>: Added <a href="css/C39">Using the CSS reduce-motion query to prevent motion</a></li> - <li><time datetime="2018-12-14">14 Dec 2018</time>: Added <a href="general/G207">Ensuring that a contrast ratio of 3:1 is provided for icons</a></li> - <li><time datetime="2018-11-13">30 Nov 2018</time>: Added <a href="css/C38">Using CSS width, max-width and flexbox to fit labels and inputs</a></li> - <li><time datetime="2018-11-30">30 Nov 2018</time>: Added <a href="failures/F95">F95 of 1.4.13 due to content shown on hover not being hoverable</a></li> - <li><time datetime="2018-11-13">13 Nov 2018</time>: Added <a href="css/C34">C34 Using media queries to un-fixing sticky headers / footers</a></li> - <li><time datetime="2018-11-13">13 Nov 2018</time>: Added <a href="css/C36">C36 Allowing for text spacing override</a></li> - <li><time datetime="2018-11-13">13 Nov 2018</time>: Added <a href="css/C37">C37 Using CSS max-width and height to fit images</a></li> - <li><time datetime="2018-11-30">30 Nov 2018</time>: Added <a href="general/G207">G207 Ensuring that drag-and-drop actions can be cancelled</a></li> - <li><time datetime="2018-11-30">30 Nov 2018</time>: Added <a href="failures/F95">F95 Failure of Success Criterion 1.4.13 due to content shown on hover not being hoverable</a></li> - <li><time datetime="2018-11-30">30 Nov 2018</time>: Added <a href="failures/F96">F96 Failure of Success Criterion 2.5.3 due to "accessible name" not containing the visible label text</a></li> - <li><time datetime="2018-11-30">30 Nov 2018</time>: Added <a href="css/C38">C38 Using CSS width, max-width and flexbox to fit labels and inputs</a></li> - <li><time datetime="2018-12-14">14 Dec 2018</time>: Added <a href="general/G207">G207 Ensuring that a contrast ratio of 3:1 is provided for icons</a></li> - </ol> + {% include "techniques/changelog/{{ version }}.html" %} <p>For a more detailed view of recent changes to the informative documents see the <a href="https://github.com/w3c/wcag/commits/master">github updates</a>.</p> </section> <a class="button button-backtotop" href="#top"><span><svg focusable="false" aria-hidden="true" class="icon-arrow-up " viewBox="0 0 26 28"> diff --git a/understanding/20/audio-control.html b/understanding/20/audio-control.html index 5ebd2fc3b4..0009d2697e 100644 --- a/understanding/20/audio-control.html +++ b/understanding/20/audio-control.html @@ -1,157 +1,104 @@ <!DOCTYPE html> <html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> - <meta charset="UTF-8"></meta> + <meta charset="UTF-8"/> <title>Understanding Audio Control</title> <link rel="stylesheet" type="text/css" href="../../css/sources.css" class="remove"/> </head> <body> <h1>Understanding Audio Control</h1> - + <section id="brief"> <h2>In brief</h2> <dl> <dt>Goal</dt><dd>A page that plays music or sounds doesn't disrupt people.</dd> <dt>What to do</dt><dd>If you play audio content automatically, let people turn it down or off.</dd> - <dt>Why it's important</dt><dd>Sound distracts some people, and also interferes with screen readers.</dd> + <dt>Why it's important</dt><dd>Sound distracts some people, and also interferes with screen readers.</dd> </dl> </section> - + <section id="intent"> <h2>Intent of Audio Control</h2> - - <p>Individuals who use screen reading software can find it hard to hear the speech output if there is other audio playing at the same time. This difficulty is exacerbated when the screen reader's speech output is software based (as most are today) and is controlled via the same volume control as the sound. Therefore, it is important that the user - be able to turn off the background sound. + be able to turn off the background sound. </p> <p>Having control of the volume includes being able to reduce its volume to zero. Muting the system volume is not "pausing or stopping" the autoplay audio. Both the "pause or stop" and control of audio volume need to be independent of the overall system volume. </p> - <div class="note"> - <p>Playing audio automatically when landing on a page may affect a screen reader user's ability to find the mechanism to stop it because they navigate by listening and automatically started sounds might interfere with that navigation. Therefore, we discourage the practice of automatically starting sounds (especially if they last more than 3 seconds), - and encourage that the sound be + and encourage that the sound be <em>started</em> by an action initiated by the user after they reach the page, rather than requiring - that the sound be + that the sound be <em>stopped</em> by an action of the user after they land on the page. </p> - </div> - - <p>See also - <a href="low-or-no-background-audio">1.4.7: Low or No Background Audio</a>. - </p> - - + <p>See also <a href="low-or-no-background-audio">1.4.7 Low or No Background Audio</a>.</p> + <p>In the context of this Success Criterion, "plays automatically" broadly refers to audio that is not started/played as a direct result of a user's intentional activation. For example, not selecting a link or button.</p> </section> <section id="benefits"> <h2>Benefits of Audio Control</h2> - - <ul> - <li>Individuals who use screen reading technologies can hear the screen reader without other sounds playing. This is especially important for those who are hard of hearing and for those whose screen readers use the system volume (so they cannot turn sound down and screen reader up). </li> - <li>This Success Criterion also benefits people who have difficulty focusing on visual content (including text) when audio is playing. </li> - </ul> - </section> - <section id="examples"> <h2>Examples of Audio Control</h2> - <ul> <li>An audio file begins playing automatically when a page is opened. However, the audio can be stopped by the user by selecting a "silent" link at the top of the page. </li> </ul> - </section> - <section id="resources"> <h2>Resources for Audio Control</h2> - - </section> - <section id="techniques"> <h2>Techniques for Audio Control</h2> - - <section id="sufficient"> <h3>Sufficient Techniques for Audio Control</h3> - - <ul> - <li> - <a href="../Techniques/general/G60" class="general">Playing a sound that turns off automatically within three seconds</a> - </li> - <li> - <a href="../Techniques/general/G170" class="general">Providing a control near the top of the Web page that turns off sounds that play automatically</a> - </li> - <li> - <a href="../Techniques/general/G171" class="general">Playing sounds only on user request</a> - </li> - </ul> - </section> - <section id="advisory"> <h3>Additional Techniques (Advisory) for Audio Control</h3> - - </section> - <section id="failure"> <h3>Failures for Audio Control</h3> - - <ul> - <li> - <a href="../Techniques/failures/F23" class="failure">Failure due to playing a sound longer than 3 seconds where there is no mechanism to turn it off </a> - </li> - <li> - <a href="../Techniques/failures/F93" class="failure"></a> - </li> - </ul> - </section> - </section> - </body> </html> diff --git a/understanding/20/change-on-request.html b/understanding/20/change-on-request.html index 91d1a87c4c..d01acbbe3d 100644 --- a/understanding/20/change-on-request.html +++ b/understanding/20/change-on-request.html @@ -65,8 +65,7 @@ <h2>Benefits of Change on Request</h2> <li> - <p>Individuals who are unable to detect changes of context or may not realize that the - context has changed are less likely to become disoriented while navigating a site. + <p>Individuals who are unable to detect changes of context or who may not realize that the context has changed are less likely to become disoriented if they initiate the change themselves. For example: </p> diff --git a/understanding/20/images-of-text.html b/understanding/20/images-of-text.html index ce11a97a41..9096c2bba3 100644 --- a/understanding/20/images-of-text.html +++ b/understanding/20/images-of-text.html @@ -1,34 +1,33 @@ <!DOCTYPE html> <html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> - <meta charset="UTF-8"></meta> + <meta charset="UTF-8"/> <title>Understanding Images of Text</title> <link rel="stylesheet" type="text/css" href="../../css/sources.css" class="remove"/> </head> <body> <h1>Understanding Images of Text</h1> - + <section id="brief"> <h2>In brief</h2> <dl> <dt>Goal</dt><dd>Users can adjust how text is presented.</dd> <dt>What to do</dt><dd>Use text instead of pictures of text.</dd> - <dt>Why it's important</dt><dd>People cannot alter how text looks in images.</dd> + <dt>Why it's important</dt><dd>People cannot alter how text looks in images.</dd> </dl> </section> - + <section id="intent"> <h2>Intent of Images of Text</h2> - - + <p>The intent of this Success Criterion is to encourage authors, who are using technologies which are capable of achieving their desired default visual presentation, to enable people who require a particular visual presentation of text to be able to adjust the text presentation as needed. This includes people who require the text in a particular font size, foreground and background color, font family, line spacing or alignment. </p> - + <p>If authors can use text to achieve the same visual effect, they should present the information as text rather than using an image. If for any reason, the author cannot format the text to get the same effect, the effect won't be reliably presented @@ -40,52 +39,43 @@ <h2>Intent of Images of Text</h2> widely deployed or which the author doesn't have the right to redistribute, or to ensure that the text would be anti-aliased on all user agents. </p> - + <p>Images of text can also be used where it is possible for users to customize the image of text to match their requirements. </p> - - <p>The definition of image of text contains the note: Note: This does not include text that is part of a picture that contains significant + + <p>The definition of <a>images of text</a> contains the note: This does not include text that is part of a picture that contains significant other visual content. Examples of such pictures include graphs, screenshots, and diagrams which visually convey important information through more than just text. </p> - + + <p class="note">The Success Criterion is intended to address situations where <a>images of text</a> are used <em>rather than</em> text. Where images of text are used <em>in addition to</em> text to convey the same information, and where both are presented to the user, this Success Criterion is met. This allows authors to convey content using any styling they desire, while also presenting the information in text, which can then be manipulated by users to make it more distinguishable. This is in contrast to <a href="images-of-text-no-exception">1.4.9 Images of Text (No Exception)</a>, which applies to all images of text, regardless of whether or not they are used <em>in addition to</em> text.</p> + <p>Techniques for satisfying this Success Criterion are the same as those for Success Criterion 1.4.9, except that they only need to apply if the visual presentation can be achieved with the technologies that the author is using. For Success Criterion 1.4.9, the sufficient techniques would be applied only when the user can customize - the output. - </p> - - <p>See also - <a href="images-of-text-no-exception">1.4.9: Images of Text (No Exception)</a>. + the output. </p> - - + + <p>See also <a href="images-of-text-no-exception">1.4.9 Images of Text (No Exception)</a>.</p> + </section> <section id="benefits"> <h2>Benefits of Images of Text</h2> - - <ul> - <li>People with low vision (who may have trouble reading the text with the authored font family, size and/or color). </li> - <li>People with visual tracking problems (who may have trouble reading the text with the authored line spacing and/or alignment). </li> - <li>People with cognitive disabilities that affect reading.</li> - </ul> - </section> - + <section id="examples"> <h2>Examples of Images of Text</h2> - <dl> <dt>Styled Headings</dt> <dd>Rather than using bitmap images to present headings in a specific font and size, an @@ -130,139 +120,54 @@ <h2>Examples of Images of Text</h2> <dt>Customizable font settings in images of text</dt> <dd>A Web site allows users to specify font settings and all images of text on the site are then provided based on those settings.</dd> + <dt>The text in an image is also provided as text.</dt> + <dd>A user has to upload an event poster image, which includes text, to their website's events + calendar. The site's CMS (content management system) is limited, and won't allow them to create + a custom HTML/CSS/SVG recreation of the poster. However, in addition to the image, they can add + regular text to the calendar entry, so they post both the poster and the text contained in the image. + This text is shown next to the poster image on the site's calendar page.</dd> </dl> - </section> - + <section id="resources"> <h2>Resources for Images of Text</h2> - - <ul> - - <li> - - <a href="http://alistapart.com/article/cssatten">CSS Web fonts</a> - - </li> - - <li> - - <a href="http://clagnut.com/blog/2042/">Weblog comments: WebKit now supports CSS @font-face rules</a> - - </li> - - <li> - - <a href="http://www.workingwith.me.uk/articles/css/cross-browser-drop-shadows">Creating Cross Browser Compatible CSS Text Shadows</a> - - </li> - - <li> - - <a href="http://www.yourhtmlsource.com/stylesheets/csstext.html">CSS and text</a> - - </li> - + <li><a href="http://alistapart.com/article/cssatten">CSS Web fonts</a></li> + <li><a href="http://clagnut.com/blog/2042/">Weblog comments: WebKit now supports CSS @font-face rules</a></li> + <li><a href="http://www.workingwith.me.uk/articles/css/cross-browser-drop-shadows">Creating Cross Browser Compatible CSS Text Shadows</a></li> + <li><a href="http://www.yourhtmlsource.com/stylesheets/csstext.html">CSS and text</a></li> </ul> - </section> - + <section id="techniques"> <h2>Techniques for Images of Text</h2> - - <section id="sufficient"> <h3>Sufficient Techniques for Images of Text</h3> - - <ul> - - <li> - - <a href="../Techniques/css/C22" class="css">Using CSS to control visual presentation of text</a> - - </li> - - <li> - - <a href="../Techniques/css/C30" class="css">Using CSS to replace text with images of text and providing user interface controls - to switch - </a> - - </li> - - <li> - - <a href="../Techniques/general/G140" class="general">Separating information and structure from presentation so that Web pages can be presented - different ways without losing information - </a> - - </li> - - <li> - - <a href="../Techniques/pdf/PDF7" class="pdf"></a> - - </li> - + <li><a href="../Techniques/css/C22" class="css">Using CSS to control visual presentation of text</a></li> + <li><a href="../Techniques/css/C30" class="css">Using CSS to replace text with images of text and providing user interface controls to switch</a></li> + <li><a href="../Techniques/general/G140" class="general">Separating information and structure from presentation so that Web pages can be presented different ways without losing information</a></li> + <li><a href="../Techniques/pdf/PDF7" class="pdf"></a></li> </ul> - </section> - + <section id="advisory"> <h3>Additional Techniques (Advisory) for Images of Text</h3> - - <section> - <h4>CSS Techniques</h4> - <ul> - - <li> - - <a href="../Techniques/css/C12" class="css">Using percent for font sizes</a> - - </li> - - <li> - - <a href="../Techniques/css/C13" class="css">Using named font sizes</a> - - </li> - - <li> - - <a href="../Techniques/css/C14" class="css">Using em units for font sizes</a> - - </li> - - <li> - - <a href="../Techniques/css/C8" class="css">Using CSS letter-spacing to control spacing within a word</a> - - </li> - - <li> - - <a href="../Techniques/css/C6" class="css">Positioning content based on structural markup</a> - - </li> - + <li><a href="../Techniques/css/C12" class="css">Using percent for font sizes</a></li> + <li><a href="../Techniques/css/C13" class="css">Using named font sizes</a></li> + <li><a href="../Techniques/css/C14" class="css">Using em units for font sizes</a></li> + <li><a href="../Techniques/css/C8" class="css">Using CSS letter-spacing to control spacing within a word</a></li> + <li><a href="../Techniques/css/C6" class="css">Positioning content based on structural markup</a></li> </ul> - </section> - </section> - + <section id="failure"> <h3>Failures for Images of Text</h3> - - </section> - </section> - </body> </html> diff --git a/understanding/20/info-and-relationships.html b/understanding/20/info-and-relationships.html index a70e2520d6..04aaeacb66 100644 --- a/understanding/20/info-and-relationships.html +++ b/understanding/20/info-and-relationships.html @@ -575,7 +575,9 @@ <h3>Failures for Info and Relationships</h3> <a href="../../techniques/failures/F92" class="failure"></a> </li> - + <li> + <a href="../../Techniques/failures/F111" class="failure"></a> + </li> </ul> </section> diff --git a/understanding/20/name-role-value.html b/understanding/20/name-role-value.html index e0db538bbb..94cf35f6fd 100644 --- a/understanding/20/name-role-value.html +++ b/understanding/20/name-role-value.html @@ -1,50 +1,41 @@ <!DOCTYPE html> <html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> - <meta charset="UTF-8"></meta> + <meta charset="UTF-8"/> <title>Understanding Name, Role, Value</title> <link rel="stylesheet" type="text/css" href="../../css/sources.css" class="remove"/> </head> <body> <h1>Understanding Name, Role, Value</h1> - <section id="brief"> <h2>In brief</h2> <dl> <dt>Goal</dt><dd>People using assistive technology understand all components.</dd> <dt>What to do</dt><dd>Give components correct names, roles, states, and values.</dd> - <dt>Why it's important</dt><dd>Assistive technology only works well when code is done properly.</dd> + <dt>Why it's important</dt><dd>Assistive technology only works well when code is done properly.</dd> </dl> - </section> - <section id="intent"> <h2>Intent of Name, Role, Value</h2> - - <p>The intent of this Success Criterion is to ensure that Assistive Technologies (AT) can gather appropriate information about, activate (or set) and keep up to date on the status of user interface controls in the content. </p> - <p>When standard controls from accessible technologies are used, this process is straightforward. If the user interface elements are used according to specification the conditions of this provision will be met. (See examples of Success Criterion 4.1.2 below) </p> - <p>If custom controls are created, however, or interface elements are programmed (in code or script) to have a different role and/or function than usual, then additional measures need to be taken to ensure that the controls provide important and appropriate information to assistive technologies and allow themselves to be controlled by assistive technologies. </p> - <p>What roles and states are appropriate to convey to assistive technology will depend on what the control represents. Specifics about such information are defined by other specifications, such as <a href="https://www.w3.org/TR/wai-aria/">WAI-ARIA</a>, or the relevant platform standards. Another factor to consider is whether there is sufficient <a>accessibility support</a> with assistive technologies to convey the information as specified. </p> - <p>A particularly important state of a user interface control is whether or not it has focus. The focus state of a control can be programmatically determined, and notifications about change of focus are sent to user agents and assistive technology. Other examples @@ -52,48 +43,32 @@ <h2>Intent of Name, Role, Value</h2> been selected, or whether a collapsible tree view or accordion is expanded or collapsed. </p> - <div class="note"> - <p>Success Criterion 4.1.2 requires a programmatically determinable name for all user interface components. Names may be visible or invisible. Occasionally, the name needs to be visible, in which case it is identified as a label. Refer to the definition of name and label in the glossary for more information. </p> - </div> - - </section> <section id="benefits"> <h2>Benefits of Name, Role, Value</h2> - - <ul> - <li>Providing role, state, and value information on all user interface components enables compatibility with assistive technology, such as screen readers, screen magnifiers, and speech recognition software, used by people with disabilities. </li> - </ul> - </section> - <section id="examples"> <h2>Examples of Name, Role, Value</h2> - <dl> <dt>Accessible APIs</dt> <dd>A Java applet uses the accessibility API defined by the language.</dd> </dl> - </section> - <section id="resources"> <h2>Resources for Name, Role, Value</h2> - - <ul> <li> <a href="https://www.w3.org/WAI/PF/roadmap/">Dynamic Accessible Web Content Roadmap</a> @@ -105,270 +80,138 @@ <h2>Resources for Name, Role, Value</h2> <a href="https://www.w3.org/TR/wai-aria/">Web Accessibility Initiative - Accessible Rich Internet Applications (ARIA)</a> </li> </ul> - </section> - <section id="techniques"> <h2>Techniques for Name, Role, Value</h2> - - <section id="sufficient"> <h3>Sufficient Techniques for Name, Role, Value</h3> - - <section class="situation" id="name-role-value-situation-0"> - <h4>Situation A: If using a standard user interface component in a markup language (e.g., HTML): </h4> - <ul> - <li> - <a href="../Techniques/aria/ARIA14" class="aria"></a> - </li> - <li> - <a href="../Techniques/aria/ARIA16" class="aria"></a> - </li> - <li> - - <p> - - <a href="../Techniques/general/G108" class="general">Using markup features to expose the name and role, allow user-settable properties - to be directly set, and provide notification of changes - </a> using technology-specific techniques below: + <p> + <a href="../Techniques/general/G108" class="general"></a> using technology-specific techniques below: </p> - <ul> - <li> - - <a href="../Techniques/html/H91" class="html">Using HTML form controls and links</a> - + <a href="../Techniques/html/H91" class="html"></a> </li> - <li> - - <a href="../Techniques/html/H44" class="html">Using label elements to associate text labels with form controls</a> - + <a href="../Techniques/html/H44" class="html"></a> </li> - <li> - - <a href="../Techniques/html/H64" class="html">Using the title attribute of the frame element</a> - + <a href="../Techniques/html/H64" class="html"></a> </li> - <li> - - <a href="../Techniques/html/H65" class="html">Using the title attribute to identify form controls when the label element cannot - be used - </a> - + <a href="../Techniques/html/H65" class="html"></a> </li> - <li> - - <a href="../Techniques/html/H88" class="html">Using (X)HTML according to spec</a> - + <a href="../Techniques/html/H88" class="html"></a> </li> - </ul> - </li> - </ul> - </section> - <section class="situation" id="name-role-value-situation-1"> - <h4>Situation B: If using script or code to re-purpose a standard user interface component in a markup language: </h4> - <ul> - <li> - <p>Exposing the names and roles, allowing user-settable properties to be directly set, and providing notification of changes using one of the following techniques: </p> - <ul> - <li> - <a href="../Techniques/aria/ARIA16" class="aria"></a> - </li> - </ul> - </li> - </ul> - </section> - <section class="situation" id="name-role-value-situation-2"> - <h4>Situation C: If using a standard user interface component in a programming technology:</h4> - <ul> - <li> - <p> - - <a href="../Techniques/general/G135" class="general">Using the accessibility API features of a technology to expose the names and roles, - allow user-settable properties to be directly set, and provide notification of changes - </a> using technology-specific techniques below: - + <a href="../Techniques/general/G135" class="general"></a> using technology-specific techniques below: </p> - <ul> - <li> - <a href="../Techniques/pdf/PDF10" class="pdf"></a> - </li> - <li> - <a href="../Techniques/pdf/PDF12" class="pdf"></a> - </li> - </ul> - </li> - </ul> - </section> - <section class="situation" id="name-role-value-situation-3"> - <h4>Situation D: If creating your own user interface component in a programming language:</h4> - <ul> - <li> - <p> - - <a href="../Techniques/general/G10" class="general">Creating components using a technology that supports the accessibility API features - of the platforms on which the user agents will be run to expose the names and roles, - allow user-settable properties to be directly set, and provide notification of changes - </a> using technology-specific techniques below: - + <a href="../Techniques/general/G10" class="general"></a> using technology-specific techniques below: </p> - <ul> - <li> - <a href="../Techniques/aria/ARIA4" class="aria"></a> - </li> - <li> - <a href="../Techniques/aria/ARIA5" class="aria"></a> - </li> - <li> - <a href="../Techniques/aria/ARIA16" class="aria"></a> - </li> - </ul> - </li> - </ul> - </section> - </section> - <section id="advisory"> <h3>Additional Techniques (Advisory) for Name, Role, Value</h3> - </section> - <section id="failure"> <h3>Failures for Name, Role, Value</h3> - - <ul> - <li> - - <a href="../Techniques/failures/F59" class="failure">Failure due to using script to make div or span a user interface control in HTML</a> - + <a href="../Techniques/failures/F59" class="failure"></a> + </li> + <li> + <a href="../Techniques/failures/F15" class="failure"></a> + </li> + <li> + <a href="../Techniques/failures/F20" class="failure"></a> </li> - <li> - - <a href="../Techniques/failures/F15" class="failure">Failure due to implementing custom controls that do not use an accessibility API</a> - + <a href="../Techniques/failures/F42" class="failure"></a> </li> - <li> - - <a href="../Techniques/failures/F20" class="failure">Failure due to not updating text alternatives when changes to non-text content occur</a> - + <a href="../Techniques/failures/F68" class="failure"></a> </li> - <li> - - <a href="../Techniques/failures/F68" class="failure">Failure of 1.3.1 and 4.1.2 due to the association of label and user interface controls - not being programmatically determinable - </a> - + <a href="../Techniques/failures/F79" class="failure"></a> </li> - <li> - - <a href="../Techniques/failures/F79" class="failure">Failure of Success Criterion 4.1.2 due to the focus state of a user interface component - not being programmatically determinable or no notification of change of focus state - available - </a> - + <a href="../Techniques/failures/F86" class="failure"></a> </li> - <li> - - <a href="../Techniques/failures/F86" class="failure">Failure of Success Criterion 4.1.2 due to not providing names for each part of a multi-part - form field, such as a US telephone number - </a> - + <a href="../Techniques/failures/F89" class="failure"></a> </li> - <li> - - <a href="../Techniques/failures/F89" class="failure">Failure of 2.4.4 due to using null alt on an image where the image is the only content - in a link - </a> - + <a href="../Techniques/failures/F111" class="failure"></a> </li> - </ul> - </section> - </section> - </body> </html> diff --git a/understanding/20/pause-stop-hide.html b/understanding/20/pause-stop-hide.html index e513facd7c..eebf9d6ead 100644 --- a/understanding/20/pause-stop-hide.html +++ b/understanding/20/pause-stop-hide.html @@ -1,107 +1,85 @@ <!DOCTYPE html> <html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> - <meta charset="UTF-8"></meta> + <meta charset="UTF-8"/> <title>Understanding Pause, Stop, Hide</title> <link rel="stylesheet" type="text/css" href="../../css/sources.css" class="remove"/> </head> <body> <h1>Understanding Pause, Stop, Hide</h1> - + <section id="brief"> <h2>In brief</h2> <dl> <dt>Goal</dt><dd>Fewer users are distracted by content that updates or moves.</dd> <dt>What to do</dt><dd>Let users control content changes that occur in parallel with other content.</dd> - <dt>Why it's important</dt><dd>Some people with cognitive disabilities and attention deficits cannot concentrate with continual movement.</dd> + <dt>Why it's important</dt><dd>Some people with cognitive disabilities and attention deficits are distracted by continuous movement.</dd> </dl> </section> - + <section id="intent"> <h2>Intent of Pause, Stop, Hide</h2> - - + <p>The intent of this Success Criterion is to avoid distracting users during their interaction with a Web page. </p> - + + <p>In the context of this Success Criterion, "starts automatically" broadly refers to animations/updates + that are not the direct result of a user's intentional activation, for example, selecting a link or button.</p> + <p>"Moving, blinking and scrolling" refers to content in which the visible content conveys a sense of motion. Common examples include motion pictures, synchronized media presentations, animations, real-time games, and scrolling stock tickers. "Auto-updating" refers to content that updates or disappears based on a preset time interval. Common time-based - content includes audio, automatically updated weather information, news, stock price + content includes automatically updated weather information, news, stock price updates, and auto-advancing presentations and messages. The requirements for moving, blinking and scrolling content and for auto-updating content are the same except that: </p> - + <ul> - - <li>authors have the option of providing the user with a means to control the frequency - of updates when content is auto-updating and - </li> - - <li>there is no five second exception for auto-updating since it makes little sense to - auto-update for a few seconds and then stop - </li> - + <li>authors have the option of providing the user with a means to control the frequency of updates when content is auto-updating and</li> + <li>there is no five second exception for auto-updating since it makes little sense to auto-update for a few seconds and then stop</li> </ul> - + <p>Content that moves or auto-updates can be a barrier to anyone who has trouble reading stationary text quickly as well as anyone who has trouble tracking moving objects. It can also cause problems for screen readers. </p> - + <p>Moving content can also be a severe distraction for some people. Certain groups, particularly those with attention deficit disorders, find blinking content distracting, making it difficult for them to concentrate on other parts of the Web page. Five seconds was chosen because it is long enough to get a user's attention, but not so long that a user cannot wait out the distraction if necessary to use the page. </p> - + <p>Content that is paused can either resume in real-time or continue playing from the point in the presentation where the user left off. </p> - + <ul> - <li> - <p>Pausing and resuming where the user left off is best for users who want to pause to read content and works best when the content is not associated with a real-time event or status. </p> - <div class="note"> - - <p>See - <a href="timing-adjustable">2.2.1: Timing Adjustable</a> for additional requirements related to time-limits for reading. - </p> - + <p>See <a href="timing-adjustable">2.2.1: Timing Adjustable</a> for additional requirements related to time-limits for reading and interactions.</p> </div> - </li> - <li> - <p>Pausing and jumping to current display (when pause is released) is better for information that is real-time or "status" in nature. For example, weather radar, a stock ticker, a traffic camera, or an auction timer, would present misleading information if a pause caused it to display old information when the content was restarted. </p> - <div class="note"> - - <p>Hiding content would have the same result as pausing and jumping to current display - (when pause is released). - </p> - + <p>Hiding content would have the same result as pausing and jumping to current display (when pause is released).</p> </div> - </li> - </ul> - + <p>For a mechanism to be considered "a mechanism for the user to pause," it must provide the user with a means to pause that does not tie up the user or the focus so that the page cannot be used. The word "pause" here is meant in the sense of a "pause @@ -110,58 +88,58 @@ <h2>Intent of Pause, Stop, Hide</h2> moves the focus away) would not be considered a "mechanism for the user to pause" because it makes the page unusable in the process and would not meet this SC. </p> - - <p>It is important to note that the terms "blinking" and "flashing" can sometimes refer - to the same content. - </p> - + + <div class="note"> + <p>This Success Criterion is specifically concerned with moving, blinking, scrolling, and + auto-updating visual content. For audio content that starts automatically, refer to <a href="audio-control">1.4.2 Audio Control</a>.</p> + <p>Moving, blinking, scrolling content that starts automatically because of a general user interaction (such as focusing/hovering over an element, + or scrolling the page), rather than as a result of an intentional <em>activation</em> (such as activating a button), + and which doesn't provide provide a way to Pause, Stop, or Hide, will fail this Criterion, and potentially + <a href="animation=from=interaction">2.3.3 Animation from Interaction</a>.</p> + </div> + + <p>It is important to note that the terms "blinking" and "flashing" can sometimes refer to the same content.</p> + <ul> - <li>"Blinking" refers to content that causes a distraction problem. Blinking can be allowed for a short time as long as it stops (or can be stopped) </li> - <li>"Flashing" refers to content that can trigger a seizure (if it is more than 3 per second and large and bright enough). This cannot be allowed even for a second or it could cause a seizure. And turning the flash off is also not an option since the seizure could occur faster than most users could turn it off. </li> - <li>Blinking usually does not occur at speeds of 3 per second or more, but it can. If blinking occurs faster than 3 per second, it would also be considered a flash. </li> - </ul> - - + + <div class="note"> + <p>"Flashing" content that starts automatically will need to be evaluated against <a href="three-flashes">2.3.2 Three Flashes</a> + and <a href="three-flashes-or-below-threshold">2.3.1 Three Flashes or Below Threshold</a>. + </p> + </div> + </section> <section id="benefits"> <h2>Benefits of Pause, Stop, Hide</h2> - - + <ul> - <li>Providing content that stops blinking after five seconds or providing a mechanism for users to stop blinking content allows people with certain disabilities to interact with the Web page. </li> - <li>One use of content that blinks is to draw the visitor's attention to that content. Although this is an effective technique for all users with vision, it can be a problem for some users if it persists. For certain groups, including people with low literacy, reading and intellectual disabilities, and people with attention deficit disorders, content that blinks may make it difficult or even impossible to interact with the - rest of the Web page. - + rest of the Web page. </li> - </ul> - </section> - <section id="examples"> <h2>Examples of Pause, Stop, Hide</h2> - <dl> <dt>An essential animation can be paused without affecting the activity</dt> <dd>A Web site helps users understand 'how things work' through animations that demonstrate @@ -195,127 +173,69 @@ <h2>Examples of Pause, Stop, Hide</h2> for all users and because it is not presented in parallel with other content, no mechanism to pause, stop or hide it needs to be provided.</dd> </dl> - </section> - <section id="resources"> <h2>Resources for Pause, Stop, Hide</h2> - - </section> - <section id="techniques"> <h2>Techniques for Pause, Stop, Hide</h2> - - <section id="sufficient"> <h3>Sufficient Techniques for Pause, Stop, Hide</h3> - - <ul> - <li> - <a href="../Techniques/general/G4" class="general">Allowing the content to be paused and restarted from where it was stopped</a> - </li> - <li> - <a href="../Techniques/client-side-script/SCR33" class="script">Using script to scroll content, and providing a mechanism to pause it</a> - </li> - <li> - <a href="../Techniques/general/G11" class="general">Creating content that blinks for less than 5 seconds</a> - </li> - <li> - <a href="../Techniques/general/G152" class="general">Setting animated gif images to stop blinking after n cycles (within 5 seconds) </a> - </li> - <li> - <a href="../Techniques/client-side-script/SCR22" class="script">Using scripts to control blinking and stop it in five seconds or less</a> - </li> - <li> - <a href="../Techniques/general/G186" class="general">Using a control in the Web page that stops moving, blinking, or auto-updating content</a> - </li> - <li> - - <a href="../Techniques/general/G191" class="general">Providing a link, button, or other mechanism that reloads the page without the blinking - content - </a> - + <a href="../Techniques/general/G191" class="general">Providing a link, button, or other mechanism that reloads the page without the blinking content</a> </li> - </ul> - </section> - <section id="advisory"> <h3>Additional Techniques (Advisory) for Pause, Stop, Hide</h3> - </section> - <section id="failure"> <h3>Failures for Pause, Stop, Hide</h3> - - <ul> - <li> - <a href="../Techniques/failures/F16" class="failure">Failure due to including scrolling content where there is not a mechanism to pause and restart the content </a> - </li> - <li> - <a href="../Techniques/failures/F47" class="failure">Failure due to using the blink element</a> - </li> - <li> - <a href="../Techniques/failures/F4" class="failure">Failure due to using text-decoration:blink without a mechanism to stop it in less than five seconds </a> - </li> - <li> - <a href="../Techniques/failures/F50" class="failure">Failure due to a script that causes a blink effect without a mechanism to stop the blinking at 3 seconds or less </a> - </li> - <li> - <a href="../Techniques/failures/F7" class="failure">Failure due to an object or applet that has blinking content without a mechanism to pause the content that blinks for more than five seconds </a> - </li> - </ul> - </section> - </section> - </body> </html> diff --git a/understanding/20/three-flashes-or-below-threshold.html b/understanding/20/three-flashes-or-below-threshold.html index 9fa345e15f..dd361df119 100644 --- a/understanding/20/three-flashes-or-below-threshold.html +++ b/understanding/20/three-flashes-or-below-threshold.html @@ -92,8 +92,8 @@ <h2>Intent of Three Flashes or Below Threshold</h2> </div> - <div class="note"> - <p>The new (in WCAG 2.2) working definition in the field for <strong>"pair of opposing transitions involving a saturated red"</strong> is a pair of opposing transitions where, one transition is either to or from a state with a value R/(R + G + B) that is greater than or equal to 0.8, and the difference between states is more than 0.2 (unitless) in the CIE 1976 UCS chromaticity diagram. [ISO 9241-391] </p> + <div class="wcag22 note"> + <p>The new working definition in the field for <strong>"pair of opposing transitions involving a saturated red"</strong> is a pair of opposing transitions where, one transition is either to or from a state with a value R/(R + G + B) that is greater than or equal to 0.8, and the difference between states is more than 0.2 (unitless) in the CIE 1976 UCS chromaticity diagram. [ISO 9241-391] </p> <p>The chromaticity difference is calculated as:</p> <ul> <li><code>SQRT( (u'1 - u'2)^2 + (v'1 - v'2)^2 )</code></li> diff --git a/understanding/21/animation-from-interactions.html b/understanding/21/animation-from-interactions.html index d5b51b9378..9cd3d1710e 100644 --- a/understanding/21/animation-from-interactions.html +++ b/understanding/21/animation-from-interactions.html @@ -15,20 +15,20 @@ <h2>In brief</h2> <dt>What to do</dt><dd>Support user preferences for motion, and eliminate unnecessary motion effects.</dd> <dt>Why it's important</dt><dd>People can get sick from motion effects.</dd> </dl> - - </section> - + + </section> + <section id="intent"> <h2>Intent</h2> <p>The intent of this Success Criterion is to allow users to prevent animation from being displayed on Web pages. Some users experience distraction or nausea from animated content. For example, if scrolling a page causes elements to move (other than the essential movement associated with scrolling) it can trigger vestibular disorders. Vestibular (inner ear) disorder reactions include dizziness, nausea and headaches. Another animation that is often non-essential is parallax scrolling. Parallax scrolling occurs when backgrounds move at a different rate to foregrounds. Animation that is essential to the functionality or information of a web page is allowed by this Success Criterion.</p> - <p>"Animation from interactions" applies when a user’s interaction initiates non-essential animation. In contrast, <a href="pause-stop-hide.html">2.2.2 Pause, Stop, Hide</a> applies when the web page initiates animation.</p> + <p>"Animation from interactions" applies when a user’s interaction initiates non-essential animation. In contrast, <a href="pause-stop-hide.html">2.2.2 Pause, Stop, Hide</a> applies when the web page initiates animation "automatically" that is not in response to an intentional user activation. There may be situations where a particular animation may fail <em>both</em> Success Criteria.</p> <p class="note">The impact of animation on people with vestibular disorders can be quite severe. Triggered reactions include nausea, migraine headaches, and potentially needing bed rest to recover.</p> <p><strong>How can a website reduce the chances of triggering a vestibular disorder?</strong> Choose any one of the following solutions. Avoid using unnecessary animation. Provide a control for users to turn off non-essential animations from user interaction. Take advantage of the reduce motion feature in the user agent or operating system.</p> - + <p><strong>What about movement caused by a user scrolling a page?</strong> Moving new content into the viewport is essential for scrolling. The user controls the essential scrolling movement so it is allowed. Only add non-essential animation to the scrolling interaction in a responsible way. Always give users the ability to turn off unnecessary movement.</p> </section> <section id="benefits"> @@ -44,35 +44,29 @@ <h2>Benefits</h2> </section> <section id="examples"> <h2>Examples</h2> - <ul> - <li><strong>Parallax scrolling with option to turn off unnecessary motion globally:</strong> - <ul> - <li>A site includes extra animations when the user scrolls. Decorative elements move in and out of view horizontally when the essential page content is scrolled vertically. A control at the top of each page allows the user to turn off unnecessary animations. The ability to turn off non-essential animations is a site-wide setting.</li> - </ul> - </li> - <li><strong>Transitions that support the reduce motion preference:</strong> - <ul> - <li>A site includes a non-essential transition when loading new content. The transition is a page-flipping animation that respects the reduce-motion CSS media query. When the user enables the reduce motion preference, the page-flipping animation is turned off. </li> - </ul> - </li> - <li><strong>Essential animation:</strong> - <ul> - <li>A web application provides a feature to author animated sequences. As part of this tool the author needs to preview the animation.</li> - </ul> - </li> - </ul> + <dl> + <dt>Parallax scrolling with option to turn off unnecessary motion globally</dt> + <dd>A site includes extra animations when the user scrolls. Decorative elements move in and out of view + horizontally when the essential page content is scrolled vertically. A control at the top of each page + allows the user to turn off unnecessary animations. The ability to turn off non-essential animations is a site-wide setting.</dd> + <dt>Transitions that support the reduce motion preference</dt> + <dd>A site includes a non-essential transition when loading new content. The transition is a page-flipping + animation that respects the reduce-motion CSS media query. When the user enables the reduce motion preference, + the page-flipping animation is turned off.</dd> + <dt>Essential animation</dt> + <dd>A web application provides a feature to author animated sequences. As part of this tool the author needs to preview the animation.</dd> + </dl> </section> <section id="resources"> <h2>Resources</h2> <ul> - <li><a href="//developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion">Mozilla documentation for 'prefers-reduced-motion'</a></li> - <li><a href="//webkit.org/blog-files/prefers-reduced-motion/prm.htm">Demonstration of 'prefers-reduced-motion' in Webkit</a></li> - <li><a href="https://css-tricks.com/introduction-reduced-motion-media-query/">An Introduction to the Reduced Motion Media Query</a></li> - <li><a href="http://alistapart.com/article/designing-safer-web-animation-for-motion-sensitivity">Designing Safer Web Animations for Motion Sensitivity</a></li> - <li><a href="https://support.apple.com/en-gb/HT202655"><strong>iOS:</strong> Reduce Motion on iPhone, iPad or iPod touch</a></li> - <li><a href="https://apple.stackexchange.com/questions/253756/speed-up-mission-control-animations-in-macos-sierra"><strong>Mac:</strong> Reduce Motion</a></li> - <li><a href="//www.laptopmag.com/articles/disable-minimize-maximize-animations-windows-10"><strong>Windows 10:</strong> Reduce motion</a></li> - + <li><a href="//developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion">Mozilla documentation for 'prefers-reduced-motion'</a></li> + <li><a href="//webkit.org/blog-files/prefers-reduced-motion/prm.htm">Demonstration of 'prefers-reduced-motion' in Webkit</a></li> + <li><a href="https://css-tricks.com/introduction-reduced-motion-media-query/">An Introduction to the Reduced Motion Media Query</a></li> + <li><a href="http://alistapart.com/article/designing-safer-web-animation-for-motion-sensitivity">Designing Safer Web Animations for Motion Sensitivity</a></li> + <li><a href="https://support.apple.com/en-gb/HT202655"><strong>iOS:</strong> Reduce Motion on iPhone, iPad or iPod touch</a></li> + <li><a href="https://apple.stackexchange.com/questions/253756/speed-up-mission-control-animations-in-macos-sierra"><strong>Mac:</strong> Reduce Motion</a></li> + <li><a href="//www.laptopmag.com/articles/disable-minimize-maximize-animations-windows-10"><strong>Windows 10:</strong> Reduce motion</a></li> </ul> </section> <section id="techniques"> diff --git a/understanding/21/pointer-gestures.html b/understanding/21/pointer-gestures.html index 1d935f749d..f6634457c9 100644 --- a/understanding/21/pointer-gestures.html +++ b/understanding/21/pointer-gestures.html @@ -41,7 +41,8 @@ <h2>Intent of this Success Criterion</h2> <p>Examples of path-based gestures include swiping, sliders and carousels dependent on the direction of interaction, and other gestures which trace a prescribed path such as drawing a specific shape. Such paths may be drawn with a finger or stylus on a touchscreen, graphics tablet, or trackpad, or with a mouse, joystick, or similar pointer device.</p> <h3>The difference between Pointer Gestures and Dragging</h3> -<p>Dragging is a movement where the user picks up an object with a pointer (such as mouse cursor or a finger) and moves it to some other position. This movement from start point to end point does not require the user to follow any particular path or direction. Dragging is therefore not path-based. In contrast, a path-based pointer gesture requires the traversal of an intermediate point, which is a technical way of expressing that the directionality and possibly speed of the gesture communicates a particular command to the system. Dragging motions are covered in <a href="dragging-movements">Success Criterion 2.5.7: Dragging Movements</a>.</p> + <p>Dragging is a movement where the user picks up an object with a pointer (such as mouse cursor or a finger) and moves it to some other position. This movement from start point to end point does not require the user to follow any particular path or direction. Dragging is therefore not path-based. In contrast, a path-based pointer gesture requires the traversal of an intermediate point, which is a technical way of expressing that the directionality and possibly speed of the gesture communicates a particular command to the system. + <span class="wcag22">Dragging motions are covered in <a href="dragging-movements">Success Criterion 2.5.7: Dragging Movements</a>.</span></p> <figure id="figure-path-based-gesture-3"> <img src="img/path-based-gesture-3.png" width="400" alt="Hand showing a starting touch, 1. Going to a second point, 2. It follows a very random path." /> diff --git a/understanding/21/target-size-enhanced.html b/understanding/21/target-size-enhanced.html index 6690225d7c..5084184159 100644 --- a/understanding/21/target-size-enhanced.html +++ b/understanding/21/target-size-enhanced.html @@ -84,7 +84,6 @@ <h2>Resources</h2> </section> <section id="techniques"> <h2>Techniques</h2> - <p>Each numbered item in this section represents a technique or combination of techniques that the <abbr title="Web Content Accessibility Guidelines">WCAG</abbr> Working Group deems sufficient for meeting this Success Criterion. However, it is not necessary to use these particular techniques. For information on using other techniques, see <a href="understanding-techniques" class="understanding">Understanding Techniques for WCAG Success Criteria</a>, particularly the "Other Techniques" section.</p> <section id="sufficient"> <h3>Sufficient</h3> <section class="situation"> diff --git a/understanding/21/text-spacing.html b/understanding/21/text-spacing.html index 77b6c1f708..8d15e5f89d 100644 --- a/understanding/21/text-spacing.html +++ b/understanding/21/text-spacing.html @@ -65,7 +65,7 @@ <h4 id="cutoff">Text Cut Off</h4> <figcaption>Vertical text cut off is a failure.</figcaption> <img src="img/spacing_cutoff_fail_vertical.png" alt="Heading text truncated vertically." width="420" height="190" /> </figure> - <p>In Figure 2 the last portion of text is cut off in 3 side-by-side headings. The 1st heading should read "A cog in the wheel." But it reads "A cog in the whe". Only half of the second "e" is visible and the letter "l" is completely missing. The 2nd heading should read "A penny for your thoughts". But it reads "A penny for your". The 3rd should read "Back to the drawing board." But it reads "Back to the drawi". </p> + <p>In Figure 2 the last portion of text is cut off in three side-by-side headings. The first heading should read "A cog in the wheel", but it reads "A cog in the whe". Only half of the second "e" is visible and the letter "l" is completely missing. The second heading should read "A penny for your thoughts". But it reads "A penny for your". The third should read "Back to the drawing board." But it reads "Back to the drawi". </p> <figure id="figure-horiz-text-cut"> <figcaption>Horizontal text cut off is a failure.</figcaption> <img src="img/spacing_cutoff_fail_horizontal.png" alt="3 side-by-side headings with truncated text." width="509" height="184" /> @@ -73,7 +73,7 @@ <h4 id="cutoff">Text Cut Off</h4> </section> <section> <h4 id="overlap">Text Overlap</h4> - <p>In Figure 3 the last 3 words "Groups and Programs" of the heading "Technologists Seeking Input from Groups and Programs" overlap the following sentence. That sentence should read, "You are invited to share ideas and areas of interest related to the integration of technology from a group or program perspective." But the words "You are invited to share ideas" are obscured and unreadable.</p> + <p>In Figure 3 the last three words "Groups and Programs" of the heading "Technologists Seeking Input from Groups and Programs" overlap the following sentence. That sentence should read, "You are invited to share ideas and areas of interest related to the integration of technology from a group or program perspective." However, the words "You are invited to share ideas" are obscured and unreadable.</p> <figure id="figure-overlapping-text"> <figcaption>Overlapping text is a failure.</figcaption> <img src="img/spacing_overlap_fail.png" alt="Heading text overlaps part of paragraph text." width="510" height="170" /> @@ -115,15 +115,15 @@ <h4 id="lang">Languages and Scripts</h4> <h4 id="results">Results</h4> <p id="langimpact">No adverse effects occurred. The following are the specific findings:</p> <dl> - <dt>Character Spacing </dt> + <dt>Character Spacing</dt> <dd>Individual characters in words remained intact though they were spaced a bit further apart.</dd> - <dt>Word Spacing </dt> - <dd>Words were spaced farther apart. In languages that do not have words (e.g. Japanese) applying word spacing had no effect. This is expected.</dd> + <dt>Word Spacing</dt> + <dd>Words were spaced further apart. In languages that do not have words (e.g., Japanese) applying word spacing had no effect. This is expected.</dd> <dt>Line Height</dt> <dd>Changing line height did not separate diacritics from characters, nor did it adversely impact ascenders or descenders.</dd> </dl> <p>As previously discussed, the ability to read text with adjusted spacing is a user responsibility. This is true no matter the language.</p> - <p>The SC's exception addresses cases where a text style property is not used in a language or script. In such cases, authors are only required to ensure relevant properties do not break the layout.</p> + <p>The SC's exception addresses cases where a text style property is not used in a language or script. In such cases, authors are only required to ensure relevant properties do not break the layout.</p> </section> </section> <section> diff --git a/understanding/index.html b/understanding/index.html index 163d088a0f..7e0b1fe689 100644 --- a/understanding/index.html +++ b/understanding/index.html @@ -4,7 +4,7 @@ <meta charset="UTF-8"/> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/> - <title>Understanding WCAG 2.2 | WAI | W3C</title> + <title>Understanding WCAG {{ versionDecimal }} | WAI | W3C</title> <link rel="stylesheet" href="https://w3.org/WAI/assets/css/style.css"/> <link rel="stylesheet" type="text/css" href="base.css"/> </head> @@ -29,7 +29,7 @@ <main id="main" class="main-content standalone-resource__main"> - <h1 id="title" class="title p-name">All WCAG 2.2 Understanding Docs</h1> + <h1 id="title" class="title p-name">All WCAG {{ versionDecimal }} Understanding Docs</h1> <aside class="box"> <header class="box-h ">Summary</header> <div class="box-i"> diff --git a/understanding/intro.html b/understanding/intro.html index f4c29f8a8d..abdc83175e 100644 --- a/understanding/intro.html +++ b/understanding/intro.html @@ -1,17 +1,17 @@ <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> - <title>Introduction to Understanding WCAG 2</title> + <title>Introduction to Understanding WCAG {{ versionDecimal }}</title> </head> <body> - <h1>Introduction to Understanding WCAG 2</h1> - <p>Understanding WCAG 2 is an essential guide to understanding and using "<a href="https://www.w3.org/TR/WCAG/">Web Content Accessibility Guidelines 2</a>". Although the normative definition and requirements for WCAG 2 can all be found in the WCAG 2 document itself, the concepts and provisions may be new to some people. Understanding WCAG 2 provides a non-normative extended commentary on each guideline and each success criterion to help readers better understand the intent and how the guidelines and success criteria work together. It also provides examples of techniques or combinations of techniques that the Working Group has identified as being sufficient to meet each success criterion. Links are then provided to write-ups for each of the techniques.</p> + <h1>Introduction to Understanding WCAG {{ versionDecimal }}</h1> + <p>Understanding WCAG {{ versionDecimal }} is an essential guide to understanding and using "<a href="https://www.w3.org/TR/WCAG{{ version }}/">Web Content Accessibility Guidelines {{ versionDecimal }}</a>". Although the normative definition and requirements for WCAG {{ versionDecimal }} can all be found in the WCAG {{ versionDecimal }} document itself, the concepts and provisions may be new to some people. Understanding WCAG {{ versionDecimal }} provides a non-normative extended commentary on each guideline and each success criterion to help readers better understand the intent and how the guidelines and success criteria work together. It also provides examples of techniques or combinations of techniques that the Working Group has identified as being sufficient to meet each success criterion. Links are then provided to write-ups for each of the techniques.</p> <p>This is not an introductory document. It is a detailed technical description of the guidelines and their success criteria. See <a href="https://www.w3.org/WAI/intro/wcag">Web Content Accessibility Guidelines (WCAG) Overview</a> for an introduction to WCAG, supporting technical documents, and educational material. </p> - <p>Understanding WCAG 2 is organized by guideline. There is an <em>Understanding Guideline X.X</em> section for each guideline. The intent and any advisory techniques that are related to the guideline but not specifically related to any of its success criteria are listed there as well.</p> + <p>Understanding WCAG {{ versionDecimal }} is organized by guideline. There is an <em>Understanding Guideline X.X</em> section for each guideline. The intent and any advisory techniques that are related to the guideline but not specifically related to any of its success criteria are listed there as well.</p> <p>The <em>Understanding Guidelines X.X</em> section is then followed by an <em>Understanding success criterion X.X.X</em> section for each success criterion of that guideline. These sections each contain:</p> <ul> <li> - <p>The success criterion as it appears in WCAG 2</p> + <p>The success criterion as it appears in WCAG {{ versionDecimal }}</p> </li> <li> <p>Intent of the success criterion</p> @@ -35,11 +35,11 @@ <h1>Introduction to Understanding WCAG 2</h1> <p>Additional advisory techniques that go beyond what is required to meet the success criterion but can be used to make some or all types of content more accessible. Use of advisory techniques does not impact the level of conformance claimed. </p> </li> <li> - <p>Key terms for this success criterion (taken from the WCAG 2 Glossary)</p> + <p>Key terms for this success criterion (taken from the WCAG {{ versionDecimal }} Glossary)</p> </li> </ul> - <p>Links are provided from each Guideline in WCAG 2 directly to each <em>Understanding Guideline X.X</em> in this document. Similarly, there is a link from each success criterion in WCAG 2 to the <em>Understanding Success Criterion X.X.X</em> section in this document. </p> - <p>For information about individual techniques, follow the links throughout this document to the techniques of interest in the <a href="../Techniques/">Techniques for WCAG 2</a> document.</p> + <p>Links are provided from each Guideline in WCAG {{ versionDecimal }} directly to each <em>Understanding Guideline X.X</em> in this document. Similarly, there is a link from each success criterion in WCAG {{ versionDecimal }} to the <em>Understanding Success Criterion X.X.X</em> section in this document. </p> + <p>For information about individual techniques, follow the links throughout this document to the techniques of interest in the <a href="../Techniques/">Techniques for WCAG {{ versionDecimal }}</a> document.</p> <p>For links to information on different disabilities and assistive technologies see <a href="https://en.wikipedia.org/wiki/Disability">Disabilities on Wikipedia</a>. </p> <section> <h2>Understanding the Four Principles of Accessibility</h2> @@ -79,18 +79,18 @@ <h2>Understanding the Four Principles of Accessibility</h2> </li> </ol> <p>If any of these are not true, users with disabilities will not be able to use the Web. </p> - <p>Under each of the principles are guidelines and success criteria that help to address these principles for people with disabilities. There are many general usability guidelines that make content more usable by all people, including those with disabilities. However, in WCAG 2, we only include those guidelines that address problems particular to people with disabilities. This includes issues that block access or interfere with access to the Web more severely for people with disabilities.</p> + <p>Under each of the principles are guidelines and success criteria that help to address these principles for people with disabilities. There are many general usability guidelines that make content more usable by all people, including those with disabilities. However, in WCAG {{ versionDecimal }}, we only include those guidelines that address problems particular to people with disabilities. This includes issues that block access or interfere with access to the Web more severely for people with disabilities.</p> </section> <section> <h2>Layers of Guidance</h2> <section> <h3>The Guidelines</h3> - <p>Under each principle there is a list of guidelines that address the principle. There are a total of 13 guidelines. A convenient list of just the guidelines can be found in the <a class="gl-ref" href="https://www.w3.org/TR/WCAG/#toc">WCAG 2 table of contents</a>. One of the key objectives of the guidelines is to ensure that content is directly accessible to as many people as possible, and capable of being re-presented in different forms to match different peoples' sensory, physical and cognitive abilities.</p> + <p>Under each principle there is a list of guidelines that address the principle. There are a total of 13 guidelines. A convenient list of just the guidelines can be found in the <a class="gl-ref" href="https://www.w3.org/TR/WCAG{{ version }}/#toc">WCAG {{ versionDecimal }} table of contents</a>. One of the key objectives of the guidelines is to ensure that content is directly accessible to as many people as possible, and capable of being re-presented in different forms to match different peoples' sensory, physical and cognitive abilities.</p> </section> <section> <h3>Success Criteria</h3> <p>Under each guideline, there are success criteria that describe specifically what must be achieved in order to <a>conform</a> to this standard. They are similar to the "checkpoints" in WCAG 1.0. Each success criterion is written as a statement that will be either true or false when specific Web content is tested against it. The success criteria are written to be technology neutral.</p> - <p>All WCAG 2 success criteria are written as testable criteria for objectively determining if content satisfies the success criteria. While some of the testing can be automated using software evaluation programs, others require human testers for part or all of the test.</p> + <p>All WCAG {{ versionDecimal }} success criteria are written as testable criteria for objectively determining if content satisfies the success criteria. While some of the testing can be automated using software evaluation programs, others require human testers for part or all of the test.</p> <p>Although content may satisfy the success criteria, the content may not always be usable by people with a wide variety of disabilities. Professional reviews utilizing recognized qualitative heuristics are important in achieving accessibility for some audiences. In addition, usability testing is recommended. Usability testing aims to determine how well people can use the content for its intended purpose.</p> <p>The content should be tested by those who understand how people with different types of disabilities use the Web. It is recommended that users with disabilities be included in test groups when performing human testing. </p> <p>Each success criterion for a guideline has a link to the section of the How to Meet document that provides:</p> diff --git a/understanding/refer-to-wcag.html b/understanding/refer-to-wcag.html index 22b4450799..31f561342d 100644 --- a/understanding/refer-to-wcag.html +++ b/understanding/refer-to-wcag.html @@ -1,61 +1,61 @@ <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> - <title>How to refer to WCAG 2 from other documents</title> + <title>How to refer to WCAG {{ versionDecimal }} from other documents</title> </head> <body> - <h1>How to refer to WCAG 2 from other documents</h1> - <p>The following examples show how to reference WCAG 2 in various situations. For additional guidance, see <a href="https://www.w3.org/WAI/intro/linking.html">Referencing and Linking to WAI Guidelines and Technical Documents</a>.</p> - <p> Please note that the following language for referencing WCAG 2 can be inserted into your own documents. </p> + <h1>How to refer to WCAG {{ versionDecimal }} from other documents</h1> + <p>The following examples show how to reference WCAG {{ versionDecimal }} in various situations. For additional guidance, see <a href="https://www.w3.org/WAI/intro/linking.html">Referencing and Linking to WAI Guidelines and Technical Documents</a>.</p> + <p> Please note that the following language for referencing WCAG {{ versionDecimal }} can be inserted into your own documents. </p> <section id="conformance-referencing-information"> <h2>Information references</h2> - <p>When referencing WCAG 2 in an informational fashion, the following format can be used.</p> - <p><em>Web Content Accessibility Guidelines 2.2, W3C World Wide Web Consortium Recommendation XX Month Year (https://www.w3.org/TR/YYYY/REC-WCAG22-YYYYMMDD/, Latest version at https://www.w3.org/TR/WCAG22/)</em></p> + <p>When referencing WCAG {{ versionDecimal }} in an informational fashion, the following format can be used.</p> + <p><em>Web Content Accessibility Guidelines {{ versionDecimal }}, W3C World Wide Web Consortium Recommendation XX Month Year (https://www.w3.org/TR/YYYY/REC-WCAG{{ version }}-YYYYMMDD/, Latest version at https://www.w3.org/TR/WCAG{{ version }}/)</em></p> </section> <section id="conformance-referencing-should"> - <h2>When referring to WCAG 2 from another standard with a "should" statement</h2> - <p>When referencing WCAG 2 from within a <strong>should</strong> statement in a standard (or advisory statement in a regulation), then the full WCAG 2 should be referenced. This would mean that all three levels of WCAG 2 should be considered but that none are required. The format for referencing WCAG 2 from a "should" statement therefore, is:</p> - <p><em>Web Content Accessibility Guidelines 2.2, W3C World Wide Web Consortium Recommendation XX Month Year. (https://www.w3.org/TR/YYYY/REC-WCAG22-YYYYMMDD/)</em></p> + <h2>When referring to WCAG {{ versionDecimal }} from another standard with a "should" statement</h2> + <p>When referencing WCAG {{ versionDecimal }} from within a <strong>should</strong> statement in a standard (or advisory statement in a regulation), then the full WCAG {{ versionDecimal }} should be referenced. This would mean that all three levels of WCAG {{ versionDecimal }} should be considered but that none are required. The format for referencing WCAG {{ versionDecimal }} from a "should" statement therefore, is:</p> + <p><em>Web Content Accessibility Guidelines {{ versionDecimal }}, W3C World Wide Web Consortium Recommendation XX Month Year. (https://www.w3.org/TR/YYYY/REC-WCAG{{ version }}-YYYYMMDD/)</em></p> </section> <section id="conformance-referencing-must"> - <h2>When referring to WCAG 2 from another standard with a "shall or must" statement</h2> - <p>When citing WCAG 2 as part of a requirement (e.g., a <strong>shall or must </strong> statement in a standard or regulation), the reference must include the specific parts of WCAG 2 that are intended to be required. When referencing WCAG 2 in this manner, the following rules apply: </p> + <h2>When referring to WCAG {{ versionDecimal }} from another standard with a "shall or must" statement</h2> + <p>When citing WCAG {{ versionDecimal }} as part of a requirement (e.g., a <strong>shall or must </strong> statement in a standard or regulation), the reference must include the specific parts of WCAG {{ versionDecimal }} that are intended to be required. When referencing WCAG {{ versionDecimal }} in this manner, the following rules apply: </p> <ol class="enumar"> <li> - <p>Conformance at any level of WCAG 2 requires that all of the Level A success criteria be met. References to WCAG 2 conformance cannot be for any subset of Level A. </p> + <p>Conformance at any level of WCAG {{ versionDecimal }} requires that all of the Level A success criteria be met. References to WCAG {{ versionDecimal }} conformance cannot be for any subset of Level A. </p> </li> <li> <p>Beyond Level A, a "shall or must" reference may include any subset of provisions in Levels AA and AAA. For example, "<em>all of Level A and [some specific list of success criteria in Level AA and Level AAA]</em>" be met. </p> </li> <li> - <p>If Level AA conformance to WCAG 2 is specified, then all Level A and all Level AA success criteria must be met.</p> + <p>If Level AA conformance to WCAG {{ versionDecimal }} is specified, then all Level A and all Level AA success criteria must be met.</p> </li> <li> - <p>If Level AAA conformance to WCAG 2 is specified, then all Level A, all Level AA, and all Level AAA success criteria must be met.</p> + <p>If Level AAA conformance to WCAG {{ versionDecimal }} is specified, then all Level A, all Level AA, and all Level AAA success criteria must be met.</p> <p class="prefix"><em>Note 1: </em>It is not recommended that Level AAA conformance ever be required for entire sites as a general policy because it is not possible to satisfy all Level AAA success criteria for some content. </p> - <p class="prefix"><em>Note 2: </em>The sets of success criteria defined in WCAG 2 are interdependent and individual success criteria rely on each other's definitions in ways which may not be immediately obvious to the reader. Any set of success criteria must include all of the Level A provisions.</p> + <p class="prefix"><em>Note 2: </em>The sets of success criteria defined in WCAG {{ versionDecimal }} are interdependent and individual success criteria rely on each other's definitions in ways which may not be immediately obvious to the reader. Any set of success criteria must include all of the Level A provisions.</p> </li> </ol> </section> <section id="conformance-referencing-examples"> <h2>Examples</h2> <p><strong>To cite only the Level A Success Criteria (Single-A conformance):</strong></p> - <p><em>Web Content Accessibility Guidelines 2.2, W3C World Wide Web Consortium Recommendation XX Month Year, Level A Success Criteria. (https://www.w3.org/TR/YYYY/REC-WCAG22-YYYYMMDD/)</em></p> + <p><em>Web Content Accessibility Guidelines {{ versionDecimal }}, W3C World Wide Web Consortium Recommendation XX Month Year, Level A Success Criteria. (https://www.w3.org/TR/YYYY/REC-WCAG{{ version }}-YYYYMMDD/)</em></p> <p><strong>To cite the Levels A and AA Success Criteria (Double-A conformance):</strong></p> - <p><em>Web Content Accessibility Guidelines 2.2, W3C World Wide Web Consortium Recommendation XX Month Year, Level A & Level AA Success Criteria. (https://www.w3.org/TR/YYYY/REC-WCAG22-YYYYMMDD/)</em></p> + <p><em>Web Content Accessibility Guidelines {{ versionDecimal }}, W3C World Wide Web Consortium Recommendation XX Month Year, Level A & Level AA Success Criteria. (https://www.w3.org/TR/YYYY/REC-WCAG{{ version }}-YYYYMMDD/)</em></p> <p><strong>To cite Level A Success Criteria and selected Success Criteria from Level AA and Level AAA: </strong></p> - <p><em>Web Content Accessibility Guidelines 2.2, W3C World Wide Web Consortium Recommendation XX Month Year, Level A Success Criteria plus Success Criteria 1.x.x, 2.y.y, … 3.z.z. (https://www.w3.org/TR/YYYY/REC-WCAG22-YYYYMMDD/)</em></p> - <p><strong>Example of use of a WCAG 2 reference in a "shall or must" statement.</strong></p> - <p>All Web content on publicly available Web sites shall conform to Web Content Accessibility Guidelines 2.2, W3C World Wide Web Consortium Recommendation XX Month Year, Level A Success Criteria plus Success Criteria 1.2.3, 2.4.5-6, 3.1.2 (https://www.w3.org/TR/YYYY/REC-WCAG22-YYYYMMDD/)</p> + <p><em>Web Content Accessibility Guidelines {{ versionDecimal }}, W3C World Wide Web Consortium Recommendation XX Month Year, Level A Success Criteria plus Success Criteria 1.x.x, 2.y.y, … 3.z.z. (https://www.w3.org/TR/YYYY/REC-WCAG{{ version }}-YYYYMMDD/)</em></p> + <p><strong>Example of use of a WCAG {{ versionDecimal }} reference in a "shall or must" statement.</strong></p> + <p>All Web content on publicly available Web sites shall conform to Web Content Accessibility Guidelines {{ versionDecimal }}, W3C World Wide Web Consortium Recommendation XX Month Year, Level A Success Criteria plus Success Criteria 1.2.3, 2.4.5-6, 3.1.2 (https://www.w3.org/TR/YYYY/REC-WCAG{{ version }}-YYYYMMDD/)</p> </section> <section id="conformance-referencing-support"> - <h2>Referring to content from WCAG 2 support documents</h2> - <p>Techniques, which are listed in Understanding WCAG 2 and described in other supporting documents, are not part of the normative WCAG 2 Recommendation and should not be cited using the citation for the WCAG 2 Recommendation itself. References to techniques in support documents should be cited separately.</p> - <p>Techniques can be cited based on the individual Technique document or on the master WCAG 2 Techniques document. For example, the technique "Using alt attributes on img elements" could be cited as</p> + <h2>Referring to content from WCAG {{ versionDecimal }} support documents</h2> + <p>Techniques, which are listed in Understanding WCAG {{ versionDecimal }} and described in other supporting documents, are not part of the normative WCAG {{ versionDecimal }} Recommendation and should not be cited using the citation for the WCAG {{ versionDecimal }} Recommendation itself. References to techniques in support documents should be cited separately.</p> + <p>Techniques can be cited based on the individual Technique document or on the master WCAG {{ versionDecimal }} Techniques document. For example, the technique "Using alt attributes on img elements" could be cited as</p> <p class="indented"><em>"Using alt attributes on img elements," W3C World Wide Web Consortium Note. (URI: {URI of technique}) </em></p> <p class="indented">or</p> - <p class="indented"><em>W3C World Wide Web Consortium (20xx): WCAG2.2 HTML Techniques (URI: {URI of HTML Techniques})</em></p> - <p class="indented"><strong>Techniques are not designed to be referenced as "required"</strong> from any standard or regulation.Standards and regulations should not make any specific technique mandatory, though they may choose to recommend techniques.</p> + <p class="indented"><em>W3C World Wide Web Consortium (20xx): WCAG{{ versionDecimal }} HTML Techniques (URI: {URI of HTML Techniques})</em></p> + <p class="indented"><strong>Techniques are not designed to be referenced as "required"</strong> from any standard or regulation. Standards and regulations should not make any specific technique mandatory, though they may choose to recommend techniques.</p> </section> </body> </html> diff --git a/understanding/understanding-techniques.html b/understanding/understanding-techniques.html index be18332fc6..c4b3322563 100644 --- a/understanding/understanding-techniques.html +++ b/understanding/understanding-techniques.html @@ -1,13 +1,13 @@ <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> - <title>Understanding Techniques for WCAG 2 Success Criteria</title> + <title>Understanding Techniques for WCAG {{ versionDecimal }} Success Criteria</title> </head> <body> - <h1>Understanding Techniques for WCAG 2 Success Criteria</h1> - <p>WCAG 2 guidelines and success criteria are designed to be broadly applicable to current and future web technologies, including dynamic applications, mobile, digital television, etc. They are stable and do not change.</p> - <p>Specific guidance for authors and evaluators on meeting the WCAG 2 success criteria is provided in techniques, which include code examples, resources, and tests. W3C's <a href="../Techniques/">Techniques for WCAG 2</a> document is updated periodically, about twice per year, to cover more current best practices and changes in technologies and tools.</p> - <p>The three types of guidance in <a href="../Techniques/">Techniques for WCAG 2</a> are explained below:</p> + <h1>Understanding Techniques for WCAG {{ versionDecimal }} Success Criteria</h1> + <p>WCAG {{ versionDecimal }} guidelines and success criteria are designed to be broadly applicable to current and future web technologies, including dynamic applications, mobile, digital television, etc. They are stable and do not change.</p> + <p>Specific guidance for authors and evaluators on meeting the WCAG {{ versionDecimal }} success criteria is provided in techniques, which include code examples, resources, and tests. W3C's <a href="../Techniques/">Techniques for WCAG {{ versionDecimal }}</a> document is updated periodically, about twice per year, to cover more current best practices and changes in technologies and tools.</p> + <p>The three types of guidance in <a href="../Techniques/">Techniques for WCAG {{ versionDecimal }}</a> are explained below:</p> <ul> <li>Sufficient techniques</li> <li>Advisory techniques</li> @@ -24,14 +24,14 @@ <h1>Understanding Techniques for WCAG 2 Success Criteria</h1> <p><a href="conformance">Understanding Conformance</a> provides related information, including on <a href="conformance#accessibility-support">understanding accessibility support</a>.</p> <section> <h2>Techniques are Informative</h2> - <p><em>Techniques are informative — that means they are not required. The basis for determining conformance to WCAG 2 are the success criteria from the WCAG 2 standard — not the techniques.</em></p> - <p class="prefix"><em>Note 1: </em>W3C cautions against requiring W3C's sufficient techniques. The only thing that should be required is meeting the WCAG 2 success criteria. To learn more, see:</p> + <p><em>Techniques are informative — that means they are not required. The basis for determining conformance to WCAG {{ versionDecimal }} are the success criteria from the WCAG {{ versionDecimal }} standard — not the techniques.</em></p> + <p class="prefix"><em>Note 1: </em>W3C cautions against requiring W3C's sufficient techniques. The only thing that should be required is meeting the WCAG {{ versionDecimal }} success criteria. To learn more, see:</p> <ul> <li> <p><a href="https://www.w3.org/WAI/standards-guidelines/wcag/faq/#techsnot">What would be the negative consequences of allowing <em>only</em> W3C's published techniques to be used for conformance to WCAG 2?</a> in the WCAG 2 FAQ</p> </li> </ul> - <p class="prefix"><em>Note 2: </em><a href="../Techniques/">Techniques for WCAG 2</a> uses the words "must" and "should" only to clarify guidance within the techniques, not to convey requirements for WCAG 2.</p> + <p class="prefix"><em>Note 2: </em><a href="../Techniques/">Techniques for WCAG {{ versionDecimal }}</a> uses the words "must" and "should" only to clarify guidance within the techniques, not to convey requirements for WCAG {{ versionDecimal }}.</p> </section> <section> <h2>Sufficient Techniques</h2> @@ -44,7 +44,7 @@ <h2>Sufficient Techniques</h2> <p>From an evaluator's perspective: If web content implements the sufficient techniques for a given criterion correctly and it is <a href="conformance#accessibility-support">accessibility-supported</a> for the content's users, it conforms to that success criterion. (The converse is not true; if content does not implement these sufficient techniques, it does not necessarily fail the success criteria, as explained in <a href="#testing-techniques">Testing Techniques</a> below.)</p> </li> </ul> - <p>There may be other ways to meet success criteria besides the sufficient techniques in W3C's <a href="../Techniques/">Techniques for WCAG 2</a> document, as explained in <a href="#understanding-techniques-othertechs">Other Techniques</a> below. <em>(See also <a href="#understanding-techniques-informative">Techniques are Informative</a> above.)</em></p> + <p>There may be other ways to meet success criteria besides the sufficient techniques in W3C's <a href="../Techniques/">Techniques for WCAG {{ versionDecimal }}</a> document, as explained in <a href="#understanding-techniques-othertechs">Other Techniques</a> below. <em>(See also <a href="#understanding-techniques-informative">Techniques are Informative</a> above.)</em></p> <section> <h3>Numbered Lists, "AND"</h3> <p> The W3C-documented sufficient techniques are provided in a numbered list where each list item provides a technique or combination of techniques that can be used to meet the success criterion. Where there are multiple techniques on a numbered list item connected by "AND" then all of the techniques must be used to be sufficient. For example, <a href="info-and-relationships#techniques">Sufficient Techniques for 1.3.1</a> has: "G115: Using semantic elements to mark up structure AND H49: Using semantic markup to mark emphasized or special text (HTML)".</p> @@ -72,35 +72,35 @@ <h2>Failures</h2> <p>Authors to know what to avoid,</p> </li> <li> - <p>Evaluators to use for checking if content does not meet WCAG 2 success criteria.</p> + <p>Evaluators to use for checking if content does not meet WCAG {{ versionDecimal }} success criteria.</p> </li> </ul> - <p>Content that has a <em>failure</em> does not meet WCAG 2 success criteria, unless an alternate version is provided without the failure.</p> + <p>Content that has a <em>failure</em> does not meet WCAG {{ versionDecimal }} success criteria, unless an alternate version is provided without the failure.</p> <p>If anyone identifies a situation where a documented failure is not correct, please <a href="https://www.w3.org/WAI/standards-guidelines/wcag/commenting/">report the situation as a WCAG 2 comment</a> so that it can be corrected or deleted as appropriate.</p> </section> <section> <h2>General and Technology-specific Techniques</h2> <p><em>General techniques</em> describe basic practices that apply to all technologies. <em>Technology-specific techniques</em> apply to a specific technology.</p> <p>Some success criteria do not have technology-specific techniques and are covered only with general techniques. Therefore, both the general techniques and the relevant technology-specific techniques should be considered.</p> - <p>Publication of techniques for a specific technology does not imply that the technology can be used in all situations to create content that meets WCAG 2 success criteria and conformance requirements. Developers need to be aware of the limitations of specific technologies and provide content in a way that is accessible to people with disabilities.</p> + <p>Publication of techniques for a specific technology does not imply that the technology can be used in all situations to create content that meets WCAG {{ versionDecimal }} success criteria and conformance requirements. Developers need to be aware of the limitations of specific technologies and provide content in a way that is accessible to people with disabilities.</p> </section> <section> <h2>Other Techniques</h2> - <p>In addition to the techniques in W3C's <a href="../Techniques/">Techniques for WCAG 2</a> document, <em>there are other ways to meet WCAG 2 success criteria</em>. W3C's techniques are not comprehensive and may not cover newer technologies and situations.</p> - <p><em>Web content does not have to use W3C's published techniques in order to conform to WCAG 2. (See also <a href="understanding-techniques-informative">Techniques are Informative</a> above.)</em></p> - <p>Content authors can develop different techniques. For example, an author could develop a technique for HTML5, <a href="https://www.w3.org/WAI/intro/aria">WAI-ARIA</a>, or other new technology. Other organizations may develop sets of techniques to meet WCAG 2 success criteria.</p> + <p>In addition to the techniques in W3C's <a href="../Techniques/">Techniques for WCAG {{ versionDecimal }}</a> document, <em>there are other ways to meet WCAG {{ versionDecimal }} success criteria</em>. W3C's techniques are not comprehensive and may not cover newer technologies and situations.</p> + <p><em>Web content does not have to use W3C's published techniques in order to conform to WCAG {{ versionDecimal }}. (See also <a href="understanding-techniques-informative">Techniques are Informative</a> above.)</em></p> + <p>Content authors can develop different techniques. For example, an author could develop a technique for HTML5, <a href="https://www.w3.org/WAI/intro/aria">WAI-ARIA</a>, or other new technology. Other organizations may develop sets of techniques to meet WCAG {{ versionDecimal }} success criteria.</p> <p>Any techniques can be sufficient if:</p> <ul> <li> <p>they satisfy the success criterion, and</p> </li> <li> - <p> all of the <a href="conformance">WCAG 2 conformance requirements</a> are met.</p> + <p> all of the <a href="conformance">WCAG {{ versionDecimal }} conformance requirements</a> are met.</p> </li> </ul> <section> <h3>Submitting Techniques</h3> - <p>The WCAG Working Group encourages people to submit new techniques so that they can be considered for inclusion in updates of the <a href="../Techniques/">Techniques for WCAG 2</a> document. Please submit techniques for consideration to the <a href="https://github.com/w3c/wcag/">WCAG repository on GitHub</a>.</p> + <p>The WCAG Working Group encourages people to submit new techniques so that they can be considered for inclusion in updates of the <a href="../Techniques/">Techniques for WCAG {{ versionDecimal }}</a> document. Please submit techniques for consideration to the <a href="https://github.com/w3c/wcag/">WCAG repository on GitHub</a>.</p> </section> </section> <section> @@ -138,10 +138,10 @@ <h3>Support Notes Change Over Time</h3> </section> <section> <h2>Using the Techniques</h2> - <p><a href="../Techniques/">Techniques for WCAG 2</a> is not intended to be used as a stand-alone document. Instead, it is expected that content authors will usually use <a href="https://www.w3.org/WAI/WCAG22/quickref/">How to Meet WCAG 2.2: A customizable quick reference</a> to read the WCAG 2 success criteria, and follow links from there to specific topics in Understanding WCAG 2 and to specific techniques.</p> + <p><a href="../Techniques/">Techniques for WCAG {{ versionDecimal }}</a> is not intended to be used as a stand-alone document. Instead, it is expected that content authors will usually use <a href="https://www.w3.org/WAI/WCAG{{ version }}/quickref/">How to Meet WCAG {{ versionDecimal }}: A customizable quick reference</a> to read the WCAG 2 success criteria, and follow links from there to specific topics in Understanding WCAG 2 and to specific techniques.</p> <section> <h3>Alternatives must meet success criteria</h3> - <p>Some techniques describe how to provide alternate ways for users to get content. For example, <a href="https://www.w3.org/WAI/WCAG22/Techniques/general/G73">G73: Providing a long description in another location...</a> mentions a transcript as an alternative for an audio file. Some alternatives must also conform to WCAG 2. For example, the transcript itself must meet all relevant success criteria. </p> + <p>Some techniques describe how to provide alternate ways for users to get content. For example, <a href="https://www.w3.org/WAI/WCAG{{ version }}/Techniques/general/G73"></a> mentions a transcript as an alternative for an audio file. Some alternatives must also conform to WCAG 2. For example, the transcript itself must meet all relevant success criteria. </p> </section> <section> <h3>Example Code</h3> diff --git a/working-examples/silverlight-accessible-validation/AccessibleValidation.xap b/working-examples/silverlight-accessible-validation/AccessibleValidation.xap deleted file mode 100644 index ceff6aa8df..0000000000 Binary files a/working-examples/silverlight-accessible-validation/AccessibleValidation.xap and /dev/null differ diff --git a/working-examples/silverlight-accessible-validation/index.html b/working-examples/silverlight-accessible-validation/index.html deleted file mode 100644 index 0bf9dc4c70..0000000000 --- a/working-examples/silverlight-accessible-validation/index.html +++ /dev/null @@ -1,73 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" > -<!-- saved from url=(0014)about:internet --> -<head> - <title>AccessibleValidation</title> - <style type="text/css"> - html, body { - height: 100%; - overflow: auto; - } - body { - padding: 0; - margin: 0; - } - #silverlightControlHost { - height: 100%; - text-align:center; - } - </style> - - <script type="text/javascript"> - function onSilverlightError(sender, args) { - var appSource = ""; - if (sender != null && sender != 0) { - appSource = sender.getHost().Source; - } - - var errorType = args.ErrorType; - var iErrorCode = args.ErrorCode; - - if (errorType == "ImageError" || errorType == "MediaError") { - return; - } - - var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; - - errMsg += "Code: "+ iErrorCode + " \n"; - errMsg += "Category: " + errorType + " \n"; - errMsg += "Message: " + args.ErrorMessage + " \n"; - - if (errorType == "ParserError") { - errMsg += "File: " + args.xamlFile + " \n"; - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - else if (errorType == "RuntimeError") { - if (args.lineNumber != 0) { - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - errMsg += "MethodName: " + args.methodName + " \n"; - } - - throw new Error(errMsg); - } - </script> -</head> -<body> - <form id="form1" runat="server" style="height:100%"> - <div id="silverlightControlHost"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> - <param name="source" value="AccessibleValidation.xap"/> - <param name="onError" value="onSilverlightError"/> - <param name="background" value="white"/> - <param name="minRuntimeVersion" value="4.0.50826.0"/> - <param name="autoUpgrade" value="true"/> - <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none"> - <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> - </a> - </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> - </form> -</body> -</html> diff --git a/working-examples/silverlight-alternative-audio-channel/AlternativeAudioChannel.xap b/working-examples/silverlight-alternative-audio-channel/AlternativeAudioChannel.xap deleted file mode 100644 index 0281cf7911..0000000000 Binary files a/working-examples/silverlight-alternative-audio-channel/AlternativeAudioChannel.xap and /dev/null differ diff --git a/working-examples/silverlight-alternative-audio-channel/index.html b/working-examples/silverlight-alternative-audio-channel/index.html deleted file mode 100644 index 59ec422cfa..0000000000 --- a/working-examples/silverlight-alternative-audio-channel/index.html +++ /dev/null @@ -1,73 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" > -<!-- saved from url=(0014)about:internet --> -<head> - <title>AlternativeAudioChannel</title> - <style type="text/css"> - html, body { - height: 100%; - overflow: auto; - } - body { - padding: 0; - margin: 0; - } - #silverlightControlHost { - height: 100%; - text-align:center; - } - </style> - - <script type="text/javascript"> - function onSilverlightError(sender, args) { - var appSource = ""; - if (sender != null && sender != 0) { - appSource = sender.getHost().Source; - } - - var errorType = args.ErrorType; - var iErrorCode = args.ErrorCode; - - if (errorType == "ImageError" || errorType == "MediaError") { - return; - } - - var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; - - errMsg += "Code: "+ iErrorCode + " \n"; - errMsg += "Category: " + errorType + " \n"; - errMsg += "Message: " + args.ErrorMessage + " \n"; - - if (errorType == "ParserError") { - errMsg += "File: " + args.xamlFile + " \n"; - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - else if (errorType == "RuntimeError") { - if (args.lineNumber != 0) { - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - errMsg += "MethodName: " + args.methodName + " \n"; - } - - throw new Error(errMsg); - } - </script> -</head> -<body> - <form id="form1" runat="server" style="height:100%"> - <div id="silverlightControlHost"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> - <param name="source" value="AlternativeAudioChannel.xap"/> - <param name="onError" value="onSilverlightError"/> - <param name="background" value="white"/> - <param name="minRuntimeVersion" value="4.0.50826.0"/> - <param name="autoUpgrade" value="true"/> - <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none"> - <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> - </a> - </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> - </form> -</body> -</html> diff --git a/working-examples/silverlight-application-level-key-handling/ApplicationLevelKeyHandling.xap b/working-examples/silverlight-application-level-key-handling/ApplicationLevelKeyHandling.xap deleted file mode 100644 index 4fbbba0229..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/ApplicationLevelKeyHandling.xap and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/index.html b/working-examples/silverlight-application-level-key-handling/index.html deleted file mode 100644 index 4d76dfd998..0000000000 --- a/working-examples/silverlight-application-level-key-handling/index.html +++ /dev/null @@ -1,73 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" > -<!-- saved from url=(0014)about:internet --> -<head> - <title>ApplicationLevelKeyHandling</title> - <style type="text/css"> - html, body { - height: 100%; - overflow: auto; - } - body { - padding: 0; - margin: 0; - } - #silverlightControlHost { - height: 100%; - text-align:center; - } - </style> - - <script type="text/javascript"> - function onSilverlightError(sender, args) { - var appSource = ""; - if (sender != null && sender != 0) { - appSource = sender.getHost().Source; - } - - var errorType = args.ErrorType; - var iErrorCode = args.ErrorCode; - - if (errorType == "ImageError" || errorType == "MediaError") { - return; - } - - var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; - - errMsg += "Code: "+ iErrorCode + " \n"; - errMsg += "Category: " + errorType + " \n"; - errMsg += "Message: " + args.ErrorMessage + " \n"; - - if (errorType == "ParserError") { - errMsg += "File: " + args.xamlFile + " \n"; - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - else if (errorType == "RuntimeError") { - if (args.lineNumber != 0) { - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - errMsg += "MethodName: " + args.methodName + " \n"; - } - - throw new Error(errMsg); - } - </script> -</head> -<body> - <form id="form1" runat="server" style="height:100%"> - <div id="silverlightControlHost"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> - <param name="source" value="ApplicationLevelKeyHandling.xap"/> - <param name="onError" value="onSilverlightError"/> - <param name="background" value="white"/> - <param name="minRuntimeVersion" value="4.0.50826.0"/> - <param name="autoUpgrade" value="true"/> - <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none"> - <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> - </a> - </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> - </form> -</body> -</html> diff --git a/working-examples/silverlight-application-level-key-handling/source/Metadata.xml b/working-examples/silverlight-application-level-key-handling/source/Metadata.xml deleted file mode 100644 index 865ce8a6a1..0000000000 --- a/working-examples/silverlight-application-level-key-handling/source/Metadata.xml +++ /dev/null @@ -1,40 +0,0 @@ -<?xml version="1.0"?> -<Metadata version="1"> - <AspectRatio>0.683757839154774</AspectRatio> - <Image> - <FileName>C:\Documents and Settings\samlan\My Documents\Expression\Deep Zoom Composer Projects\sampleProject\source images\flower.jpg</FileName> - <x>0</x> - <y>0.248322147651007</y> - <Width>0.426006666529119</Width> - <Height>0.447427293064877</Height> - <ZOrder>1</ZOrder> - <Tag /> - </Image> - <Image> - <FileName>C:\Documents and Settings\samlan\My Documents\Expression\Deep Zoom Composer Projects\sampleProject\source images\guy_by_the_beach.jpg</FileName> - <x>0.284513295996183</x> - <y>0</y> - <Width>0.445908699115547</Width> - <Height>0.447427293064877</Height> - <ZOrder>2</ZOrder> - <Tag /> - </Image> - <Image> - <FileName>C:\Documents and Settings\samlan\My Documents\Expression\Deep Zoom Composer Projects\sampleProject\source images\tree_blossoms.jpg</FileName> - <x>0.564602007381454</x> - <y>0.328859060402685</y> - <Width>0.435397992618546</Width> - <Height>0.447427293064877</Height> - <ZOrder>3</ZOrder> - <Tag /> - </Image> - <Image> - <FileName>C:\Documents and Settings\samlan\My Documents\Expression\Deep Zoom Composer Projects\sampleProject\source images\licorice.jpg</FileName> - <x>0.22022604281128</x> - <y>0.552572706935123</y> - <Width>0.437066526416967</Width> - <Height>0.447427293064877</Height> - <ZOrder>4</ZOrder> - <Tag /> - </Image> -</Metadata> \ No newline at end of file diff --git a/working-examples/silverlight-application-level-key-handling/source/SparseImageSceneGraph.xml b/working-examples/silverlight-application-level-key-handling/source/SparseImageSceneGraph.xml deleted file mode 100644 index fe665d62f0..0000000000 --- a/working-examples/silverlight-application-level-key-handling/source/SparseImageSceneGraph.xml +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0"?> -<SceneGraph version="1"> - <AspectRatio>0.683757839154774</AspectRatio> - <SceneNode> - <FileName>C:\Documents and Settings\samlan\My Documents\Expression\Deep Zoom Composer Projects\sampleProject\source images\flower.jpg</FileName> - <x>0</x> - <y>0.248322147651007</y> - <Width>0.426006666529119</Width> - <Height>0.447427293064877</Height> - <ZOrder>1</ZOrder> - </SceneNode> - <SceneNode> - <FileName>C:\Documents and Settings\samlan\My Documents\Expression\Deep Zoom Composer Projects\sampleProject\source images\guy_by_the_beach.jpg</FileName> - <x>0.284513295996183</x> - <y>0</y> - <Width>0.445908699115547</Width> - <Height>0.447427293064877</Height> - <ZOrder>2</ZOrder> - </SceneNode> - <SceneNode> - <FileName>C:\Documents and Settings\samlan\My Documents\Expression\Deep Zoom Composer Projects\sampleProject\source images\tree_blossoms.jpg</FileName> - <x>0.564602007381454</x> - <y>0.328859060402685</y> - <Width>0.435397992618546</Width> - <Height>0.447427293064877</Height> - <ZOrder>3</ZOrder> - </SceneNode> - <SceneNode> - <FileName>C:\Documents and Settings\samlan\My Documents\Expression\Deep Zoom Composer Projects\sampleProject\source images\licorice.jpg</FileName> - <x>0.22022604281128</x> - <y>0.552572706935123</y> - <Width>0.437066526416967</Width> - <Height>0.447427293064877</Height> - <ZOrder>4</ZOrder> - </SceneNode> -</SceneGraph> \ No newline at end of file diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output.xml b/working-examples/silverlight-application-level-key-handling/source/dzc_output.xml deleted file mode 100644 index 581a65759f..0000000000 --- a/working-examples/silverlight-application-level-key-handling/source/dzc_output.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Collection MaxLevel="8" TileSize="256" Format="png" NextItemId="4" xmlns="http://schemas.microsoft.com/deepzoom/2008"> - <Items> - <I Id="0" N="0" IsPath="1" Source="dzc_output_images/flower.xml"> - <Size Width="541" Height="831" /> - <Viewport Width="2.347381" X="0" Y="-0.8525046" /> - </I> - <I Id="1" N="1" IsPath="1" Source="dzc_output_images/guy_by_the_beach.xml"> - <Size Width="569" Height="835" /> - <Viewport Width="2.242612" X="-0.6380528" Y="0" /> - </I> - <I Id="2" N="2" IsPath="1" Source="dzc_output_images/tree_blossoms.xml"> - <Size Width="515" Height="774" /> - <Viewport Width="2.296749" X="-1.296749" Y="-1.104641" /> - </I> - <I Id="3" N="3" IsPath="1" Source="dzc_output_images/licorice.xml"> - <Size Width="531" Height="795" /> - <Viewport Width="2.287981" X="-0.5038731" Y="-1.849011" /> - </I> - </Items> -</Collection> \ No newline at end of file diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/0/0_0.png b/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/0/0_0.png deleted file mode 100644 index d79230945c..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/0/0_0.png and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/1/0_0.png b/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/1/0_0.png deleted file mode 100644 index 151ac9ac12..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/1/0_0.png and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/2/0_0.png b/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/2/0_0.png deleted file mode 100644 index d095579955..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/2/0_0.png and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/3/0_0.png b/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/3/0_0.png deleted file mode 100644 index 1989fc3856..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/3/0_0.png and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/4/0_0.png b/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/4/0_0.png deleted file mode 100644 index 428664aa22..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/4/0_0.png and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/5/0_0.png b/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/5/0_0.png deleted file mode 100644 index e3a6757159..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/5/0_0.png and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/6/0_0.png b/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/6/0_0.png deleted file mode 100644 index f8a15d5150..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/6/0_0.png and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/7/0_0.png b/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/7/0_0.png deleted file mode 100644 index 773f0a05b6..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/7/0_0.png and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/8/0_0.png b/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/8/0_0.png deleted file mode 100644 index 3c59cbcfe1..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/8/0_0.png and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/8/0_1.png b/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/8/0_1.png deleted file mode 100644 index a10cb3a73a..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/8/0_1.png and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/8/1_0.png b/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/8/1_0.png deleted file mode 100644 index 1e1b8865bf..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/8/1_0.png and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/8/1_1.png b/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/8/1_1.png deleted file mode 100644 index fa294d2efa..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_files/8/1_1.png and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower.xml b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower.xml deleted file mode 100644 index 81740e261c..0000000000 --- a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower.xml +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Image TileSize="254" Overlap="1" Format="jpg" xmlns="http://schemas.microsoft.com/deepzoom/2008"> -<Size Width="541" Height="831"/> -</Image> diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/0/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/0/0_0.jpg deleted file mode 100644 index 4b010e9765..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/0/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/1/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/1/0_0.jpg deleted file mode 100644 index de0854ecfc..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/1/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/0_0.jpg deleted file mode 100644 index 019a1609f5..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/0_1.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/0_1.jpg deleted file mode 100644 index 18b0ed956e..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/0_1.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/0_2.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/0_2.jpg deleted file mode 100644 index 8bf461ec88..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/0_2.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/0_3.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/0_3.jpg deleted file mode 100644 index ee849d2558..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/0_3.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/1_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/1_0.jpg deleted file mode 100644 index 47fc6c0f51..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/1_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/1_1.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/1_1.jpg deleted file mode 100644 index dc6b92b592..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/1_1.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/1_2.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/1_2.jpg deleted file mode 100644 index 5189ba8165..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/1_2.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/1_3.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/1_3.jpg deleted file mode 100644 index bd51348cf8..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/1_3.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/2_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/2_0.jpg deleted file mode 100644 index 072194b600..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/2_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/2_1.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/2_1.jpg deleted file mode 100644 index da7b9ff60e..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/2_1.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/2_2.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/2_2.jpg deleted file mode 100644 index 2043690a14..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/2_2.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/2_3.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/2_3.jpg deleted file mode 100644 index 9e93066cd1..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/10/2_3.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/2/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/2/0_0.jpg deleted file mode 100644 index 0dc7eaec09..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/2/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/3/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/3/0_0.jpg deleted file mode 100644 index e9e529706e..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/3/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/4/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/4/0_0.jpg deleted file mode 100644 index 29b1d1339d..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/4/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/5/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/5/0_0.jpg deleted file mode 100644 index 203ddd63e9..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/5/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/6/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/6/0_0.jpg deleted file mode 100644 index a133dcad38..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/6/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/7/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/7/0_0.jpg deleted file mode 100644 index 0e3f37ff0b..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/7/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/8/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/8/0_0.jpg deleted file mode 100644 index 3aab41317a..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/8/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/9/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/9/0_0.jpg deleted file mode 100644 index 3fb8209ad4..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/9/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/9/0_1.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/9/0_1.jpg deleted file mode 100644 index 5ffd79dbbc..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/9/0_1.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/9/1_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/9/1_0.jpg deleted file mode 100644 index 4a9b380909..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/9/1_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/9/1_1.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/9/1_1.jpg deleted file mode 100644 index e497c6264b..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/flower_files/9/1_1.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach.xml b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach.xml deleted file mode 100644 index 7fe870ecd3..0000000000 --- a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach.xml +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Image TileSize="254" Overlap="1" Format="jpg" xmlns="http://schemas.microsoft.com/deepzoom/2008"> -<Size Width="569" Height="835"/> -</Image> diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/0/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/0/0_0.jpg deleted file mode 100644 index 1f0559f8f4..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/0/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/1/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/1/0_0.jpg deleted file mode 100644 index 4f0c2f6727..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/1/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/0_0.jpg deleted file mode 100644 index 363c865967..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/0_1.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/0_1.jpg deleted file mode 100644 index 8f6318c1fd..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/0_1.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/0_2.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/0_2.jpg deleted file mode 100644 index fa7a1fd609..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/0_2.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/0_3.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/0_3.jpg deleted file mode 100644 index 021020cdcc..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/0_3.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/1_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/1_0.jpg deleted file mode 100644 index d5ce1cdead..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/1_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/1_1.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/1_1.jpg deleted file mode 100644 index d79d19647b..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/1_1.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/1_2.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/1_2.jpg deleted file mode 100644 index 3331b96cdf..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/1_2.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/1_3.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/1_3.jpg deleted file mode 100644 index 6a98f97132..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/1_3.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/2_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/2_0.jpg deleted file mode 100644 index 139adaca03..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/2_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/2_1.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/2_1.jpg deleted file mode 100644 index 5132420404..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/2_1.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/2_2.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/2_2.jpg deleted file mode 100644 index 72b48dd55e..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/2_2.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/2_3.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/2_3.jpg deleted file mode 100644 index 53986f42b5..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/10/2_3.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/2/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/2/0_0.jpg deleted file mode 100644 index 750e2143db..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/2/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/3/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/3/0_0.jpg deleted file mode 100644 index b4b4bda457..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/3/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/4/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/4/0_0.jpg deleted file mode 100644 index 038816c5f9..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/4/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/5/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/5/0_0.jpg deleted file mode 100644 index 292ce8939d..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/5/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/6/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/6/0_0.jpg deleted file mode 100644 index e89637210c..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/6/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/7/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/7/0_0.jpg deleted file mode 100644 index 7b7e826ea0..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/7/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/8/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/8/0_0.jpg deleted file mode 100644 index 5a80ba47af..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/8/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/9/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/9/0_0.jpg deleted file mode 100644 index f20e927cc7..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/9/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/9/0_1.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/9/0_1.jpg deleted file mode 100644 index db350ebbaf..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/9/0_1.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/9/1_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/9/1_0.jpg deleted file mode 100644 index ad7967759e..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/9/1_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/9/1_1.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/9/1_1.jpg deleted file mode 100644 index 117e4b65bf..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/guy_by_the_beach_files/9/1_1.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice.xml b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice.xml deleted file mode 100644 index c4a74dcb5d..0000000000 --- a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice.xml +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Image TileSize="254" Overlap="1" Format="jpg" xmlns="http://schemas.microsoft.com/deepzoom/2008"> -<Size Width="531" Height="795"/> -</Image> diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/0/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/0/0_0.jpg deleted file mode 100644 index 6d8ffdeed7..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/0/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/1/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/1/0_0.jpg deleted file mode 100644 index dca3645e50..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/1/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/0_0.jpg deleted file mode 100644 index 4d7822e01f..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/0_1.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/0_1.jpg deleted file mode 100644 index 2518c17a60..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/0_1.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/0_2.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/0_2.jpg deleted file mode 100644 index 6873d7e4c9..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/0_2.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/0_3.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/0_3.jpg deleted file mode 100644 index 9495d71dc3..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/0_3.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/1_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/1_0.jpg deleted file mode 100644 index a9e2643d83..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/1_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/1_1.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/1_1.jpg deleted file mode 100644 index b84594daab..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/1_1.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/1_2.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/1_2.jpg deleted file mode 100644 index 3036c7bc5f..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/1_2.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/1_3.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/1_3.jpg deleted file mode 100644 index 8cbb24e055..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/1_3.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/2_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/2_0.jpg deleted file mode 100644 index f015846b10..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/2_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/2_1.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/2_1.jpg deleted file mode 100644 index 490b6151c7..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/2_1.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/2_2.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/2_2.jpg deleted file mode 100644 index 490b6151c7..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/2_2.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/2_3.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/2_3.jpg deleted file mode 100644 index d1a13d5eac..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/10/2_3.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/2/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/2/0_0.jpg deleted file mode 100644 index d1ebfc184d..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/2/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/3/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/3/0_0.jpg deleted file mode 100644 index 9c4a7d1eab..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/3/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/4/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/4/0_0.jpg deleted file mode 100644 index e3c268a0f4..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/4/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/5/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/5/0_0.jpg deleted file mode 100644 index 33936fdfdd..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/5/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/6/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/6/0_0.jpg deleted file mode 100644 index ccb23a7c99..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/6/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/7/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/7/0_0.jpg deleted file mode 100644 index 02ce50ae61..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/7/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/8/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/8/0_0.jpg deleted file mode 100644 index 9d0c0b2028..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/8/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/9/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/9/0_0.jpg deleted file mode 100644 index 8988f8264c..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/9/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/9/0_1.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/9/0_1.jpg deleted file mode 100644 index a89d9631c5..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/9/0_1.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/9/1_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/9/1_0.jpg deleted file mode 100644 index 41c030c681..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/9/1_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/9/1_1.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/9/1_1.jpg deleted file mode 100644 index 3e1e8a34d7..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/licorice_files/9/1_1.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms.xml b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms.xml deleted file mode 100644 index fdaac2adb5..0000000000 --- a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms.xml +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Image TileSize="254" Overlap="1" Format="jpg" xmlns="http://schemas.microsoft.com/deepzoom/2008"> -<Size Width="515" Height="774"/> -</Image> diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/0/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/0/0_0.jpg deleted file mode 100644 index a191e8baf5..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/0/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/1/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/1/0_0.jpg deleted file mode 100644 index 28e333f728..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/1/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/0_0.jpg deleted file mode 100644 index 8beedcad07..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/0_1.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/0_1.jpg deleted file mode 100644 index 2e68225cc4..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/0_1.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/0_2.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/0_2.jpg deleted file mode 100644 index 80bcd4885d..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/0_2.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/0_3.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/0_3.jpg deleted file mode 100644 index 73dc6c5a38..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/0_3.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/1_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/1_0.jpg deleted file mode 100644 index 251d728bf6..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/1_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/1_1.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/1_1.jpg deleted file mode 100644 index 14d77bf30a..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/1_1.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/1_2.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/1_2.jpg deleted file mode 100644 index b87c9aa360..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/1_2.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/1_3.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/1_3.jpg deleted file mode 100644 index 9039d0c279..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/1_3.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/2_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/2_0.jpg deleted file mode 100644 index 008f31f7dd..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/2_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/2_1.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/2_1.jpg deleted file mode 100644 index 58c905bcc3..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/2_1.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/2_2.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/2_2.jpg deleted file mode 100644 index 16b9d5ff84..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/2_2.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/2_3.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/2_3.jpg deleted file mode 100644 index 8518dad4f3..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/10/2_3.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/2/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/2/0_0.jpg deleted file mode 100644 index 8a12a84887..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/2/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/3/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/3/0_0.jpg deleted file mode 100644 index 8d602e4f68..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/3/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/4/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/4/0_0.jpg deleted file mode 100644 index 344fe132c7..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/4/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/5/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/5/0_0.jpg deleted file mode 100644 index ee31940bcb..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/5/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/6/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/6/0_0.jpg deleted file mode 100644 index cc8e5d3b0e..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/6/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/7/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/7/0_0.jpg deleted file mode 100644 index ca572d45fa..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/7/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/8/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/8/0_0.jpg deleted file mode 100644 index afae59199e..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/8/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/9/0_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/9/0_0.jpg deleted file mode 100644 index 67b3273176..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/9/0_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/9/0_1.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/9/0_1.jpg deleted file mode 100644 index 4cd435aa76..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/9/0_1.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/9/1_0.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/9/1_0.jpg deleted file mode 100644 index b8b58076c9..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/9/1_0.jpg and /dev/null differ diff --git a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/9/1_1.jpg b/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/9/1_1.jpg deleted file mode 100644 index 9c786083a4..0000000000 Binary files a/working-examples/silverlight-application-level-key-handling/source/dzc_output_images/tree_blossoms_files/9/1_1.jpg and /dev/null differ diff --git a/working-examples/silverlight-automation-properties-help-text/AutomationPropertiesHelpText.xap b/working-examples/silverlight-automation-properties-help-text/AutomationPropertiesHelpText.xap deleted file mode 100644 index b93ec23158..0000000000 Binary files a/working-examples/silverlight-automation-properties-help-text/AutomationPropertiesHelpText.xap and /dev/null differ diff --git a/working-examples/silverlight-automation-properties-help-text/index.html b/working-examples/silverlight-automation-properties-help-text/index.html deleted file mode 100644 index 828e843598..0000000000 --- a/working-examples/silverlight-automation-properties-help-text/index.html +++ /dev/null @@ -1,73 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" > -<!-- saved from url=(0014)about:internet --> -<head> - <title>AutomationPropertiesHelpText</title> - <style type="text/css"> - html, body { - height: 100%; - overflow: auto; - } - body { - padding: 0; - margin: 0; - } - #silverlightControlHost { - height: 100%; - text-align:center; - } - </style> - - <script type="text/javascript"> - function onSilverlightError(sender, args) { - var appSource = ""; - if (sender != null && sender != 0) { - appSource = sender.getHost().Source; - } - - var errorType = args.ErrorType; - var iErrorCode = args.ErrorCode; - - if (errorType == "ImageError" || errorType == "MediaError") { - return; - } - - var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; - - errMsg += "Code: "+ iErrorCode + " \n"; - errMsg += "Category: " + errorType + " \n"; - errMsg += "Message: " + args.ErrorMessage + " \n"; - - if (errorType == "ParserError") { - errMsg += "File: " + args.xamlFile + " \n"; - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - else if (errorType == "RuntimeError") { - if (args.lineNumber != 0) { - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - errMsg += "MethodName: " + args.methodName + " \n"; - } - - throw new Error(errMsg); - } - </script> -</head> -<body> - <form id="form1" runat="server" style="height:100%"> - <div id="silverlightControlHost"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> - <param name="source" value="AutomationPropertiesHelpText.xap"/> - <param name="onError" value="onSilverlightError"/> - <param name="background" value="white"/> - <param name="minRuntimeVersion" value="4.0.50401.0"/> - <param name="autoUpgrade" value="true"/> - <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0" style="text-decoration:none"> - <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> - </a> - </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> - </form> -</body> -</html> diff --git a/working-examples/silverlight-basic-submit-button/BasicSubmitButton.xap b/working-examples/silverlight-basic-submit-button/BasicSubmitButton.xap deleted file mode 100644 index 40779afee2..0000000000 Binary files a/working-examples/silverlight-basic-submit-button/BasicSubmitButton.xap and /dev/null differ diff --git a/working-examples/silverlight-basic-submit-button/index.html b/working-examples/silverlight-basic-submit-button/index.html deleted file mode 100644 index 818b770671..0000000000 --- a/working-examples/silverlight-basic-submit-button/index.html +++ /dev/null @@ -1,73 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" > -<!-- saved from url=(0014)about:internet --> -<head> - <title>BasicSubmitButton</title> - <style type="text/css"> - html, body { - height: 100%; - overflow: auto; - } - body { - padding: 0; - margin: 0; - } - #silverlightControlHost { - height: 100%; - text-align:center; - } - </style> - - <script type="text/javascript"> - function onSilverlightError(sender, args) { - var appSource = ""; - if (sender != null && sender != 0) { - appSource = sender.getHost().Source; - } - - var errorType = args.ErrorType; - var iErrorCode = args.ErrorCode; - - if (errorType == "ImageError" || errorType == "MediaError") { - return; - } - - var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; - - errMsg += "Code: "+ iErrorCode + " \n"; - errMsg += "Category: " + errorType + " \n"; - errMsg += "Message: " + args.ErrorMessage + " \n"; - - if (errorType == "ParserError") { - errMsg += "File: " + args.xamlFile + " \n"; - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - else if (errorType == "RuntimeError") { - if (args.lineNumber != 0) { - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - errMsg += "MethodName: " + args.methodName + " \n"; - } - - throw new Error(errMsg); - } - </script> -</head> -<body> - <form id="form1" runat="server" style="height:100%"> - <div id="silverlightControlHost"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> - <param name="source" value="BasicSubmitButton.xap"/> - <param name="onError" value="onSilverlightError"/> - <param name="background" value="white"/> - <param name="minRuntimeVersion" value="4.0.50401.0"/> - <param name="autoUpgrade" value="true"/> - <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0" style="text-decoration:none"> - <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> - </a> - </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> - </form> -</body> -</html> diff --git a/working-examples/silverlight-browser-zoom/BrowserZoom.xap b/working-examples/silverlight-browser-zoom/BrowserZoom.xap deleted file mode 100644 index e2832f69dc..0000000000 Binary files a/working-examples/silverlight-browser-zoom/BrowserZoom.xap and /dev/null differ diff --git a/working-examples/silverlight-browser-zoom/index.html b/working-examples/silverlight-browser-zoom/index.html deleted file mode 100644 index c902bfea87..0000000000 --- a/working-examples/silverlight-browser-zoom/index.html +++ /dev/null @@ -1,73 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" > -<!-- saved from url=(0014)about:internet --> -<head> - <title>BrowserZoom</title> - <style type="text/css"> - html, body { - height: 100%; - overflow: auto; - } - body { - padding: 0; - margin: 0; - } - #silverlightControlHost { - height: 100%; - text-align:center; - } - </style> - - <script type="text/javascript"> - function onSilverlightError(sender, args) { - var appSource = ""; - if (sender != null && sender != 0) { - appSource = sender.getHost().Source; - } - - var errorType = args.ErrorType; - var iErrorCode = args.ErrorCode; - - if (errorType == "ImageError" || errorType == "MediaError") { - return; - } - - var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; - - errMsg += "Code: "+ iErrorCode + " \n"; - errMsg += "Category: " + errorType + " \n"; - errMsg += "Message: " + args.ErrorMessage + " \n"; - - if (errorType == "ParserError") { - errMsg += "File: " + args.xamlFile + " \n"; - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - else if (errorType == "RuntimeError") { - if (args.lineNumber != 0) { - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - errMsg += "MethodName: " + args.methodName + " \n"; - } - - throw new Error(errMsg); - } - </script> -</head> -<body> - <form id="form1" runat="server" style="height:100%"> - <div id="silverlightControlHost"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> - <param name="source" value="BrowserZoom.xap"/> - <param name="onError" value="onSilverlightError"/> - <param name="background" value="white"/> - <param name="minRuntimeVersion" value="4.0.50401.0"/> - <param name="autoUpgrade" value="true"/> - <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0" style="text-decoration:none"> - <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> - </a> - </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> - </form> -</body> -</html> diff --git a/working-examples/silverlight-built-in-key-equivalence/BuiltInKeyEquivalence.xap b/working-examples/silverlight-built-in-key-equivalence/BuiltInKeyEquivalence.xap deleted file mode 100644 index 6c24c23b47..0000000000 Binary files a/working-examples/silverlight-built-in-key-equivalence/BuiltInKeyEquivalence.xap and /dev/null differ diff --git a/working-examples/silverlight-built-in-key-equivalence/index.html b/working-examples/silverlight-built-in-key-equivalence/index.html deleted file mode 100644 index 99f4c48c80..0000000000 --- a/working-examples/silverlight-built-in-key-equivalence/index.html +++ /dev/null @@ -1,73 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" > -<!-- saved from url=(0014)about:internet --> -<head> - <title>BuiltInKeyEquivalence</title> - <style type="text/css"> - html, body { - height: 100%; - overflow: auto; - } - body { - padding: 0; - margin: 0; - } - #silverlightControlHost { - height: 100%; - text-align:center; - } - </style> - - <script type="text/javascript"> - function onSilverlightError(sender, args) { - var appSource = ""; - if (sender != null && sender != 0) { - appSource = sender.getHost().Source; - } - - var errorType = args.ErrorType; - var iErrorCode = args.ErrorCode; - - if (errorType == "ImageError" || errorType == "MediaError") { - return; - } - - var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; - - errMsg += "Code: "+ iErrorCode + " \n"; - errMsg += "Category: " + errorType + " \n"; - errMsg += "Message: " + args.ErrorMessage + " \n"; - - if (errorType == "ParserError") { - errMsg += "File: " + args.xamlFile + " \n"; - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - else if (errorType == "RuntimeError") { - if (args.lineNumber != 0) { - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - errMsg += "MethodName: " + args.methodName + " \n"; - } - - throw new Error(errMsg); - } - </script> -</head> -<body> - <form id="form1" runat="server" style="height:100%"> - <div id="silverlightControlHost"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> - <param name="source" value="BuiltInKeyEquivalence.xap"/> - <param name="onError" value="onSilverlightError"/> - <param name="background" value="white"/> - <param name="minRuntimeVersion" value="4.0.50401.0"/> - <param name="autoUpgrade" value="true"/> - <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0" style="text-decoration:none"> - <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> - </a> - </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> - </form> -</body> -</html> diff --git a/working-examples/silverlight-button-nontext-text-composition/ButtonNontextTextComposition.xap b/working-examples/silverlight-button-nontext-text-composition/ButtonNontextTextComposition.xap deleted file mode 100644 index 38bb083949..0000000000 Binary files a/working-examples/silverlight-button-nontext-text-composition/ButtonNontextTextComposition.xap and /dev/null differ diff --git a/working-examples/silverlight-button-nontext-text-composition/index.html b/working-examples/silverlight-button-nontext-text-composition/index.html deleted file mode 100644 index e025c5be68..0000000000 --- a/working-examples/silverlight-button-nontext-text-composition/index.html +++ /dev/null @@ -1,73 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" > -<!-- saved from url=(0014)about:internet --> -<head> - <title>ButtonNontextTextComposition</title> - <style type="text/css"> - html, body { - height: 100%; - overflow: auto; - } - body { - padding: 0; - margin: 0; - } - #silverlightControlHost { - height: 100%; - text-align:center; - } - </style> - - <script type="text/javascript"> - function onSilverlightError(sender, args) { - var appSource = ""; - if (sender != null && sender != 0) { - appSource = sender.getHost().Source; - } - - var errorType = args.ErrorType; - var iErrorCode = args.ErrorCode; - - if (errorType == "ImageError" || errorType == "MediaError") { - return; - } - - var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; - - errMsg += "Code: "+ iErrorCode + " \n"; - errMsg += "Category: " + errorType + " \n"; - errMsg += "Message: " + args.ErrorMessage + " \n"; - - if (errorType == "ParserError") { - errMsg += "File: " + args.xamlFile + " \n"; - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - else if (errorType == "RuntimeError") { - if (args.lineNumber != 0) { - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - errMsg += "MethodName: " + args.methodName + " \n"; - } - - throw new Error(errMsg); - } - </script> -</head> -<body> - <form id="form1" runat="server" style="height:100%"> - <div id="silverlightControlHost"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> - <param name="source" value="ButtonNontextTextComposition.xap"/> - <param name="onError" value="onSilverlightError"/> - <param name="background" value="white"/> - <param name="minRuntimeVersion" value="4.0.50826.0"/> - <param name="autoUpgrade" value="true"/> - <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none"> - <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> - </a> - </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> - </form> -</body> -</html> diff --git a/working-examples/silverlight-button-text-alternative/ButtonNontextTextComposition.xap b/working-examples/silverlight-button-text-alternative/ButtonNontextTextComposition.xap deleted file mode 100644 index e23aa54912..0000000000 Binary files a/working-examples/silverlight-button-text-alternative/ButtonNontextTextComposition.xap and /dev/null differ diff --git a/working-examples/silverlight-button-text-alternative/index.html b/working-examples/silverlight-button-text-alternative/index.html deleted file mode 100644 index e025c5be68..0000000000 --- a/working-examples/silverlight-button-text-alternative/index.html +++ /dev/null @@ -1,73 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" > -<!-- saved from url=(0014)about:internet --> -<head> - <title>ButtonNontextTextComposition</title> - <style type="text/css"> - html, body { - height: 100%; - overflow: auto; - } - body { - padding: 0; - margin: 0; - } - #silverlightControlHost { - height: 100%; - text-align:center; - } - </style> - - <script type="text/javascript"> - function onSilverlightError(sender, args) { - var appSource = ""; - if (sender != null && sender != 0) { - appSource = sender.getHost().Source; - } - - var errorType = args.ErrorType; - var iErrorCode = args.ErrorCode; - - if (errorType == "ImageError" || errorType == "MediaError") { - return; - } - - var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; - - errMsg += "Code: "+ iErrorCode + " \n"; - errMsg += "Category: " + errorType + " \n"; - errMsg += "Message: " + args.ErrorMessage + " \n"; - - if (errorType == "ParserError") { - errMsg += "File: " + args.xamlFile + " \n"; - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - else if (errorType == "RuntimeError") { - if (args.lineNumber != 0) { - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - errMsg += "MethodName: " + args.methodName + " \n"; - } - - throw new Error(errMsg); - } - </script> -</head> -<body> - <form id="form1" runat="server" style="height:100%"> - <div id="silverlightControlHost"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> - <param name="source" value="ButtonNontextTextComposition.xap"/> - <param name="onError" value="onSilverlightError"/> - <param name="background" value="white"/> - <param name="minRuntimeVersion" value="4.0.50826.0"/> - <param name="autoUpgrade" value="true"/> - <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none"> - <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> - </a> - </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> - </form> -</body> -</html> diff --git a/working-examples/silverlight-by-animation-font-size/ByAnimationFontSize.xap b/working-examples/silverlight-by-animation-font-size/ByAnimationFontSize.xap deleted file mode 100644 index a34ed59e89..0000000000 Binary files a/working-examples/silverlight-by-animation-font-size/ByAnimationFontSize.xap and /dev/null differ diff --git a/working-examples/silverlight-by-animation-font-size/index.html b/working-examples/silverlight-by-animation-font-size/index.html deleted file mode 100644 index 3ef66b4927..0000000000 --- a/working-examples/silverlight-by-animation-font-size/index.html +++ /dev/null @@ -1,73 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" > -<!-- saved from url=(0014)about:internet --> -<head> - <title>StyleSwitcherFontSize</title> - <style type="text/css"> - html, body { - height: 100%; - overflow: auto; - } - body { - padding: 0; - margin: 0; - } - #silverlightControlHost { - height: 100%; - text-align:center; - } - </style> - - <script type="text/javascript"> - function onSilverlightError(sender, args) { - var appSource = ""; - if (sender != null && sender != 0) { - appSource = sender.getHost().Source; - } - - var errorType = args.ErrorType; - var iErrorCode = args.ErrorCode; - - if (errorType == "ImageError" || errorType == "MediaError") { - return; - } - - var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; - - errMsg += "Code: "+ iErrorCode + " \n"; - errMsg += "Category: " + errorType + " \n"; - errMsg += "Message: " + args.ErrorMessage + " \n"; - - if (errorType == "ParserError") { - errMsg += "File: " + args.xamlFile + " \n"; - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - else if (errorType == "RuntimeError") { - if (args.lineNumber != 0) { - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - errMsg += "MethodName: " + args.methodName + " \n"; - } - - throw new Error(errMsg); - } - </script> -</head> -<body> - <form id="form1" runat="server" style="height:100%"> - <div id="silverlightControlHost"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> - <param name="source" value="StyleSwitcherFontSize.xap"/> - <param name="onError" value="onSilverlightError"/> - <param name="background" value="white"/> - <param name="minRuntimeVersion" value="4.0.50401.0"/> - <param name="autoUpgrade" value="true"/> - <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0" style="text-decoration:none"> - <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> - </a> - </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> - </form> -</body> -</html> diff --git a/working-examples/silverlight-document-structure/DocumentStructure.xap b/working-examples/silverlight-document-structure/DocumentStructure.xap deleted file mode 100644 index 71ce5825cd..0000000000 Binary files a/working-examples/silverlight-document-structure/DocumentStructure.xap and /dev/null differ diff --git a/working-examples/silverlight-document-structure/index.html b/working-examples/silverlight-document-structure/index.html deleted file mode 100644 index c5a1810961..0000000000 --- a/working-examples/silverlight-document-structure/index.html +++ /dev/null @@ -1,73 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" > -<!-- saved from url=(0014)about:internet --> -<head> - <title>DocumentStructure</title> - <style type="text/css"> - html, body { - height: 100%; - overflow: auto; - } - body { - padding: 0; - margin: 0; - } - #silverlightControlHost { - height: 100%; - text-align:center; - } - </style> - - <script type="text/javascript"> - function onSilverlightError(sender, args) { - var appSource = ""; - if (sender != null && sender != 0) { - appSource = sender.getHost().Source; - } - - var errorType = args.ErrorType; - var iErrorCode = args.ErrorCode; - - if (errorType == "ImageError" || errorType == "MediaError") { - return; - } - - var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; - - errMsg += "Code: "+ iErrorCode + " \n"; - errMsg += "Category: " + errorType + " \n"; - errMsg += "Message: " + args.ErrorMessage + " \n"; - - if (errorType == "ParserError") { - errMsg += "File: " + args.xamlFile + " \n"; - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - else if (errorType == "RuntimeError") { - if (args.lineNumber != 0) { - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - errMsg += "MethodName: " + args.methodName + " \n"; - } - - throw new Error(errMsg); - } - </script> -</head> -<body> - <form id="form1" runat="server" style="height:100%"> - <div id="silverlightControlHost"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> - <param name="source" value="DocumentStructure.xap"/> - <param name="onError" value="onSilverlightError"/> - <param name="background" value="white"/> - <param name="minRuntimeVersion" value="4.0.50826.0"/> - <param name="autoUpgrade" value="true"/> - <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none"> - <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> - </a> - </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> - </form> -</body> -</html> diff --git a/working-examples/silverlight-focus-visual-custom-control/FocusVisualCustomControl.dll b/working-examples/silverlight-focus-visual-custom-control/FocusVisualCustomControl.dll deleted file mode 100644 index d8b73151fb..0000000000 Binary files a/working-examples/silverlight-focus-visual-custom-control/FocusVisualCustomControl.dll and /dev/null differ diff --git a/working-examples/silverlight-focus-visual-custom-control/FocusVisualCustomControl.xap b/working-examples/silverlight-focus-visual-custom-control/FocusVisualCustomControl.xap deleted file mode 100644 index e5fac169cc..0000000000 Binary files a/working-examples/silverlight-focus-visual-custom-control/FocusVisualCustomControl.xap and /dev/null differ diff --git a/working-examples/silverlight-focus-visual-custom-control/index.html b/working-examples/silverlight-focus-visual-custom-control/index.html deleted file mode 100644 index 50db03cfaa..0000000000 --- a/working-examples/silverlight-focus-visual-custom-control/index.html +++ /dev/null @@ -1,73 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" > -<!-- saved from url=(0014)about:internet --> -<head> - <title>FocusVisualCustomControl</title> - <style type="text/css"> - html, body { - height: 100%; - overflow: auto; - } - body { - padding: 0; - margin: 0; - } - #silverlightControlHost { - height: 100%; - text-align:center; - } - </style> - - <script type="text/javascript"> - function onSilverlightError(sender, args) { - var appSource = ""; - if (sender != null && sender != 0) { - appSource = sender.getHost().Source; - } - - var errorType = args.ErrorType; - var iErrorCode = args.ErrorCode; - - if (errorType == "ImageError" || errorType == "MediaError") { - return; - } - - var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; - - errMsg += "Code: "+ iErrorCode + " \n"; - errMsg += "Category: " + errorType + " \n"; - errMsg += "Message: " + args.ErrorMessage + " \n"; - - if (errorType == "ParserError") { - errMsg += "File: " + args.xamlFile + " \n"; - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - else if (errorType == "RuntimeError") { - if (args.lineNumber != 0) { - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - errMsg += "MethodName: " + args.methodName + " \n"; - } - - throw new Error(errMsg); - } - </script> -</head> -<body> - <form id="form1" runat="server" style="height:100%"> - <div id="silverlightControlHost"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> - <param name="source" value="FocusVisualCustomControl.xap"/> - <param name="onError" value="onSilverlightError"/> - <param name="background" value="white"/> - <param name="minRuntimeVersion" value="4.0.50826.0"/> - <param name="autoUpgrade" value="true"/> - <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none"> - <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> - </a> - </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> - </form> -</body> -</html> diff --git a/working-examples/silverlight-focusable-image/FocusableImage.dll b/working-examples/silverlight-focusable-image/FocusableImage.dll deleted file mode 100644 index b68d04e951..0000000000 Binary files a/working-examples/silverlight-focusable-image/FocusableImage.dll and /dev/null differ diff --git a/working-examples/silverlight-focusable-image/ImageEquivalent.xap b/working-examples/silverlight-focusable-image/ImageEquivalent.xap deleted file mode 100644 index 26da206828..0000000000 Binary files a/working-examples/silverlight-focusable-image/ImageEquivalent.xap and /dev/null differ diff --git a/working-examples/silverlight-focusable-image/index.html b/working-examples/silverlight-focusable-image/index.html deleted file mode 100644 index 33196379c3..0000000000 --- a/working-examples/silverlight-focusable-image/index.html +++ /dev/null @@ -1,73 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" > -<!-- saved from url=(0014)about:internet --> -<head> - <title>ImageEquivalent</title> - <style type="text/css"> - html, body { - height: 100%; - overflow: auto; - } - body { - padding: 0; - margin: 0; - } - #silverlightControlHost { - height: 100%; - text-align:center; - } - </style> - - <script type="text/javascript"> - function onSilverlightError(sender, args) { - var appSource = ""; - if (sender != null && sender != 0) { - appSource = sender.getHost().Source; - } - - var errorType = args.ErrorType; - var iErrorCode = args.ErrorCode; - - if (errorType == "ImageError" || errorType == "MediaError") { - return; - } - - var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; - - errMsg += "Code: "+ iErrorCode + " \n"; - errMsg += "Category: " + errorType + " \n"; - errMsg += "Message: " + args.ErrorMessage + " \n"; - - if (errorType == "ParserError") { - errMsg += "File: " + args.xamlFile + " \n"; - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - else if (errorType == "RuntimeError") { - if (args.lineNumber != 0) { - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - errMsg += "MethodName: " + args.methodName + " \n"; - } - - throw new Error(errMsg); - } - </script> -</head> -<body> - <form id="form1" runat="server" style="height:100%"> - <div id="silverlightControlHost"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> - <param name="source" value="ImageEquivalent.xap"/> - <param name="onError" value="onSilverlightError"/> - <param name="background" value="white"/> - <param name="minRuntimeVersion" value="4.0.50401.0"/> - <param name="autoUpgrade" value="true"/> - <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0" style="text-decoration:none"> - <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> - </a> - </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> - </form> -</body> -</html> diff --git a/working-examples/silverlight-help-text-and-tool-tip/HelpTextAndToolTip.xap b/working-examples/silverlight-help-text-and-tool-tip/HelpTextAndToolTip.xap deleted file mode 100644 index 68f87a359a..0000000000 Binary files a/working-examples/silverlight-help-text-and-tool-tip/HelpTextAndToolTip.xap and /dev/null differ diff --git a/working-examples/silverlight-help-text-and-tool-tip/index.html b/working-examples/silverlight-help-text-and-tool-tip/index.html deleted file mode 100644 index c9628068bd..0000000000 --- a/working-examples/silverlight-help-text-and-tool-tip/index.html +++ /dev/null @@ -1,73 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" > -<!-- saved from url=(0014)about:internet --> -<head> - <title>HelpTextAndToolTip</title> - <style type="text/css"> - html, body { - height: 100%; - overflow: auto; - } - body { - padding: 0; - margin: 0; - } - #silverlightControlHost { - height: 100%; - text-align:center; - } - </style> - - <script type="text/javascript"> - function onSilverlightError(sender, args) { - var appSource = ""; - if (sender != null && sender != 0) { - appSource = sender.getHost().Source; - } - - var errorType = args.ErrorType; - var iErrorCode = args.ErrorCode; - - if (errorType == "ImageError" || errorType == "MediaError") { - return; - } - - var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; - - errMsg += "Code: "+ iErrorCode + " \n"; - errMsg += "Category: " + errorType + " \n"; - errMsg += "Message: " + args.ErrorMessage + " \n"; - - if (errorType == "ParserError") { - errMsg += "File: " + args.xamlFile + " \n"; - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - else if (errorType == "RuntimeError") { - if (args.lineNumber != 0) { - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - errMsg += "MethodName: " + args.methodName + " \n"; - } - - throw new Error(errMsg); - } - </script> -</head> -<body> - <form id="form1" runat="server" style="height:100%"> - <div id="silverlightControlHost"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> - <param name="source" value="HelpTextAndToolTip.xap"/> - <param name="onError" value="onSilverlightError"/> - <param name="background" value="white"/> - <param name="minRuntimeVersion" value="4.0.50826.0"/> - <param name="autoUpgrade" value="true"/> - <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none"> - <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> - </a> - </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> - </form> -</body> -</html> diff --git a/working-examples/silverlight-high-contrast/HighContrast.xap b/working-examples/silverlight-high-contrast/HighContrast.xap deleted file mode 100644 index c4c74a1cdc..0000000000 Binary files a/working-examples/silverlight-high-contrast/HighContrast.xap and /dev/null differ diff --git a/working-examples/silverlight-high-contrast/index.html b/working-examples/silverlight-high-contrast/index.html deleted file mode 100644 index 9b156ee74e..0000000000 --- a/working-examples/silverlight-high-contrast/index.html +++ /dev/null @@ -1,73 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" > -<!-- saved from url=(0014)about:internet --> -<head> - <title>HighContrast</title> - <style type="text/css"> - html, body { - height: 100%; - overflow: auto; - } - body { - padding: 0; - margin: 0; - } - #silverlightControlHost { - height: 100%; - text-align:center; - } - </style> - - <script type="text/javascript"> - function onSilverlightError(sender, args) { - var appSource = ""; - if (sender != null && sender != 0) { - appSource = sender.getHost().Source; - } - - var errorType = args.ErrorType; - var iErrorCode = args.ErrorCode; - - if (errorType == "ImageError" || errorType == "MediaError") { - return; - } - - var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; - - errMsg += "Code: "+ iErrorCode + " \n"; - errMsg += "Category: " + errorType + " \n"; - errMsg += "Message: " + args.ErrorMessage + " \n"; - - if (errorType == "ParserError") { - errMsg += "File: " + args.xamlFile + " \n"; - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - else if (errorType == "RuntimeError") { - if (args.lineNumber != 0) { - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - errMsg += "MethodName: " + args.methodName + " \n"; - } - - throw new Error(errMsg); - } - </script> -</head> -<body> - <form id="form1" runat="server" style="height:100%"> - <div id="silverlightControlHost"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> - <param name="source" value="HighContrast.xap"/> - <param name="onError" value="onSilverlightError"/> - <param name="background" value="white"/> - <param name="minRuntimeVersion" value="4.0.50826.0"/> - <param name="autoUpgrade" value="true"/> - <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none"> - <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> - </a> - </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> - </form> -</body> -</html> diff --git a/working-examples/silverlight-labels/Labels.xap b/working-examples/silverlight-labels/Labels.xap deleted file mode 100644 index 19ecb12c8e..0000000000 Binary files a/working-examples/silverlight-labels/Labels.xap and /dev/null differ diff --git a/working-examples/silverlight-labels/index.html b/working-examples/silverlight-labels/index.html deleted file mode 100644 index 5aaad0f1c4..0000000000 --- a/working-examples/silverlight-labels/index.html +++ /dev/null @@ -1,73 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" > -<!-- saved from url=(0014)about:internet --> -<head> - <title>Labels</title> - <style type="text/css"> - html, body { - height: 100%; - overflow: auto; - } - body { - padding: 0; - margin: 0; - } - #silverlightControlHost { - height: 100%; - text-align:center; - } - </style> - - <script type="text/javascript"> - function onSilverlightError(sender, args) { - var appSource = ""; - if (sender != null && sender != 0) { - appSource = sender.getHost().Source; - } - - var errorType = args.ErrorType; - var iErrorCode = args.ErrorCode; - - if (errorType == "ImageError" || errorType == "MediaError") { - return; - } - - var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; - - errMsg += "Code: "+ iErrorCode + " \n"; - errMsg += "Category: " + errorType + " \n"; - errMsg += "Message: " + args.ErrorMessage + " \n"; - - if (errorType == "ParserError") { - errMsg += "File: " + args.xamlFile + " \n"; - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - else if (errorType == "RuntimeError") { - if (args.lineNumber != 0) { - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - errMsg += "MethodName: " + args.methodName + " \n"; - } - - throw new Error(errMsg); - } - </script> -</head> -<body> - <form id="form1" runat="server" style="height:100%"> - <div id="silverlightControlHost"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> - <param name="source" value="Labels.xap"/> - <param name="onError" value="onSilverlightError"/> - <param name="background" value="white"/> - <param name="minRuntimeVersion" value="4.0.50826.0"/> - <param name="autoUpgrade" value="true"/> - <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none"> - <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> - </a> - </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> - </form> -</body> -</html> diff --git a/working-examples/silverlight-lang-properties/LangProperties.xap b/working-examples/silverlight-lang-properties/LangProperties.xap deleted file mode 100644 index 52a3515510..0000000000 Binary files a/working-examples/silverlight-lang-properties/LangProperties.xap and /dev/null differ diff --git a/working-examples/silverlight-lang-properties/index.html b/working-examples/silverlight-lang-properties/index.html deleted file mode 100644 index a9ec32dda8..0000000000 --- a/working-examples/silverlight-lang-properties/index.html +++ /dev/null @@ -1,73 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" > -<!-- saved from url=(0014)about:internet --> -<head> - <title>LangProperties</title> - <style type="text/css"> - html, body { - height: 100%; - overflow: auto; - } - body { - padding: 0; - margin: 0; - } - #silverlightControlHost { - height: 100%; - text-align:center; - } - </style> - - <script type="text/javascript"> - function onSilverlightError(sender, args) { - var appSource = ""; - if (sender != null && sender != 0) { - appSource = sender.getHost().Source; - } - - var errorType = args.ErrorType; - var iErrorCode = args.ErrorCode; - - if (errorType == "ImageError" || errorType == "MediaError") { - return; - } - - var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; - - errMsg += "Code: "+ iErrorCode + " \n"; - errMsg += "Category: " + errorType + " \n"; - errMsg += "Message: " + args.ErrorMessage + " \n"; - - if (errorType == "ParserError") { - errMsg += "File: " + args.xamlFile + " \n"; - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - else if (errorType == "RuntimeError") { - if (args.lineNumber != 0) { - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - errMsg += "MethodName: " + args.methodName + " \n"; - } - - throw new Error(errMsg); - } - </script> -</head> -<body> - <form id="form1" runat="server" style="height:100%"> - <div id="silverlightControlHost"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> - <param name="source" value="LangProperties.xap"/> - <param name="onError" value="onSilverlightError"/> - <param name="background" value="white"/> - <param name="minRuntimeVersion" value="4.0.50401.0"/> - <param name="autoUpgrade" value="true"/> - <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0" style="text-decoration:none"> - <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> - </a> - </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> - </form> -</body> -</html> diff --git a/working-examples/silverlight-media-element-controls-auto-play/MediaElementControlsAutoPlay.xap b/working-examples/silverlight-media-element-controls-auto-play/MediaElementControlsAutoPlay.xap deleted file mode 100644 index a233827fb5..0000000000 Binary files a/working-examples/silverlight-media-element-controls-auto-play/MediaElementControlsAutoPlay.xap and /dev/null differ diff --git a/working-examples/silverlight-media-element-controls-auto-play/index.html b/working-examples/silverlight-media-element-controls-auto-play/index.html deleted file mode 100644 index 7008514e47..0000000000 --- a/working-examples/silverlight-media-element-controls-auto-play/index.html +++ /dev/null @@ -1,73 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" > -<!-- saved from url=(0014)about:internet --> -<head> - <title>MediaElementControlsAutoPlay</title> - <style type="text/css"> - html, body { - height: 100%; - overflow: auto; - } - body { - padding: 0; - margin: 0; - } - #silverlightControlHost { - height: 100%; - text-align:center; - } - </style> - - <script type="text/javascript"> - function onSilverlightError(sender, args) { - var appSource = ""; - if (sender != null && sender != 0) { - appSource = sender.getHost().Source; - } - - var errorType = args.ErrorType; - var iErrorCode = args.ErrorCode; - - if (errorType == "ImageError" || errorType == "MediaError") { - return; - } - - var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; - - errMsg += "Code: "+ iErrorCode + " \n"; - errMsg += "Category: " + errorType + " \n"; - errMsg += "Message: " + args.ErrorMessage + " \n"; - - if (errorType == "ParserError") { - errMsg += "File: " + args.xamlFile + " \n"; - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - else if (errorType == "RuntimeError") { - if (args.lineNumber != 0) { - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - errMsg += "MethodName: " + args.methodName + " \n"; - } - - throw new Error(errMsg); - } - </script> -</head> -<body> - <form id="form1" runat="server" style="height:100%"> - <div id="silverlightControlHost"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> - <param name="source" value="MediaElementControlsAutoPlay.xap"/> - <param name="onError" value="onSilverlightError"/> - <param name="background" value="white"/> - <param name="minRuntimeVersion" value="4.0.50826.0"/> - <param name="autoUpgrade" value="true"/> - <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none"> - <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> - </a> - </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> - </form> -</body> -</html> diff --git a/working-examples/silverlight-media-element-controls/MediaElementControls.xap b/working-examples/silverlight-media-element-controls/MediaElementControls.xap deleted file mode 100644 index 955dfb8c5b..0000000000 Binary files a/working-examples/silverlight-media-element-controls/MediaElementControls.xap and /dev/null differ diff --git a/working-examples/silverlight-media-element-controls/index.html b/working-examples/silverlight-media-element-controls/index.html deleted file mode 100644 index 024274a6a4..0000000000 --- a/working-examples/silverlight-media-element-controls/index.html +++ /dev/null @@ -1,73 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" > -<!-- saved from url=(0014)about:internet --> -<head> - <title>MediaElementControls</title> - <style type="text/css"> - html, body { - height: 100%; - overflow: auto; - } - body { - padding: 0; - margin: 0; - } - #silverlightControlHost { - height: 100%; - text-align:center; - } - </style> - - <script type="text/javascript"> - function onSilverlightError(sender, args) { - var appSource = ""; - if (sender != null && sender != 0) { - appSource = sender.getHost().Source; - } - - var errorType = args.ErrorType; - var iErrorCode = args.ErrorCode; - - if (errorType == "ImageError" || errorType == "MediaError") { - return; - } - - var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; - - errMsg += "Code: "+ iErrorCode + " \n"; - errMsg += "Category: " + errorType + " \n"; - errMsg += "Message: " + args.ErrorMessage + " \n"; - - if (errorType == "ParserError") { - errMsg += "File: " + args.xamlFile + " \n"; - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - else if (errorType == "RuntimeError") { - if (args.lineNumber != 0) { - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - errMsg += "MethodName: " + args.methodName + " \n"; - } - - throw new Error(errMsg); - } - </script> -</head> -<body> - <form id="form1" runat="server" style="height:100%"> - <div id="silverlightControlHost"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> - <param name="source" value="MediaElementControls.xap"/> - <param name="onError" value="onSilverlightError"/> - <param name="background" value="white"/> - <param name="minRuntimeVersion" value="4.0.50826.0"/> - <param name="autoUpgrade" value="true"/> - <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none"> - <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> - </a> - </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> - </form> -</body> -</html> diff --git a/working-examples/silverlight-media-timeline-markers/MediaTimelineMarkers.xap b/working-examples/silverlight-media-timeline-markers/MediaTimelineMarkers.xap deleted file mode 100644 index 599a74f497..0000000000 Binary files a/working-examples/silverlight-media-timeline-markers/MediaTimelineMarkers.xap and /dev/null differ diff --git a/working-examples/silverlight-media-timeline-markers/index.html b/working-examples/silverlight-media-timeline-markers/index.html deleted file mode 100644 index bf803f2fd0..0000000000 --- a/working-examples/silverlight-media-timeline-markers/index.html +++ /dev/null @@ -1,73 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" > -<!-- saved from url=(0014)about:internet --> -<head> - <title>MediaTimelineMarkers</title> - <style type="text/css"> - html, body { - height: 100%; - overflow: auto; - } - body { - padding: 0; - margin: 0; - } - #silverlightControlHost { - height: 100%; - text-align:center; - } - </style> - - <script type="text/javascript"> - function onSilverlightError(sender, args) { - var appSource = ""; - if (sender != null && sender != 0) { - appSource = sender.getHost().Source; - } - - var errorType = args.ErrorType; - var iErrorCode = args.ErrorCode; - - if (errorType == "ImageError" || errorType == "MediaError") { - return; - } - - var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; - - errMsg += "Code: "+ iErrorCode + " \n"; - errMsg += "Category: " + errorType + " \n"; - errMsg += "Message: " + args.ErrorMessage + " \n"; - - if (errorType == "ParserError") { - errMsg += "File: " + args.xamlFile + " \n"; - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - else if (errorType == "RuntimeError") { - if (args.lineNumber != 0) { - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - errMsg += "MethodName: " + args.methodName + " \n"; - } - - throw new Error(errMsg); - } - </script> -</head> -<body> - <form id="form1" runat="server" style="height:100%"> - <div id="silverlightControlHost"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> - <param name="source" value="MediaTimelineMarkers.xap"/> - <param name="onError" value="onSilverlightError"/> - <param name="background" value="white"/> - <param name="minRuntimeVersion" value="4.0.50826.0"/> - <param name="autoUpgrade" value="true"/> - <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none"> - <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> - </a> - </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> - </form> -</body> -</html> diff --git a/working-examples/silverlight-pause-bouncy-ball/PauseBouncyBall.xap b/working-examples/silverlight-pause-bouncy-ball/PauseBouncyBall.xap deleted file mode 100644 index dfee2ea738..0000000000 Binary files a/working-examples/silverlight-pause-bouncy-ball/PauseBouncyBall.xap and /dev/null differ diff --git a/working-examples/silverlight-pause-bouncy-ball/index.html b/working-examples/silverlight-pause-bouncy-ball/index.html deleted file mode 100644 index a60826e289..0000000000 --- a/working-examples/silverlight-pause-bouncy-ball/index.html +++ /dev/null @@ -1,73 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" > -<!-- saved from url=(0014)about:internet --> -<head> - <title>PauseBouncyBall</title> - <style type="text/css"> - html, body { - height: 100%; - overflow: auto; - } - body { - padding: 0; - margin: 0; - } - #silverlightControlHost { - height: 100%; - text-align:center; - } - </style> - - <script type="text/javascript"> - function onSilverlightError(sender, args) { - var appSource = ""; - if (sender != null && sender != 0) { - appSource = sender.getHost().Source; - } - - var errorType = args.ErrorType; - var iErrorCode = args.ErrorCode; - - if (errorType == "ImageError" || errorType == "MediaError") { - return; - } - - var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; - - errMsg += "Code: "+ iErrorCode + " \n"; - errMsg += "Category: " + errorType + " \n"; - errMsg += "Message: " + args.ErrorMessage + " \n"; - - if (errorType == "ParserError") { - errMsg += "File: " + args.xamlFile + " \n"; - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - else if (errorType == "RuntimeError") { - if (args.lineNumber != 0) { - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - errMsg += "MethodName: " + args.methodName + " \n"; - } - - throw new Error(errMsg); - } - </script> -</head> -<body> - <form id="form1" runat="server" style="height:100%"> - <div id="silverlightControlHost"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> - <param name="source" value="PauseBouncyBall.xap"/> - <param name="onError" value="onSilverlightError"/> - <param name="background" value="white"/> - <param name="minRuntimeVersion" value="4.0.50826.0"/> - <param name="autoUpgrade" value="true"/> - <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none"> - <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> - </a> - </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> - </form> -</body> -</html> diff --git a/working-examples/silverlight-programmatic-focus/ProgrammaticFocus.xap b/working-examples/silverlight-programmatic-focus/ProgrammaticFocus.xap deleted file mode 100644 index 52840f6900..0000000000 Binary files a/working-examples/silverlight-programmatic-focus/ProgrammaticFocus.xap and /dev/null differ diff --git a/working-examples/silverlight-programmatic-focus/index.html b/working-examples/silverlight-programmatic-focus/index.html deleted file mode 100644 index f722567bb1..0000000000 --- a/working-examples/silverlight-programmatic-focus/index.html +++ /dev/null @@ -1,73 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" > -<!-- saved from url=(0014)about:internet --> -<head> - <title>ProgrammaticFocus</title> - <style type="text/css"> - html, body { - height: 100%; - overflow: auto; - } - body { - padding: 0; - margin: 0; - } - #silverlightControlHost { - height: 100%; - text-align:center; - } - </style> - - <script type="text/javascript"> - function onSilverlightError(sender, args) { - var appSource = ""; - if (sender != null && sender != 0) { - appSource = sender.getHost().Source; - } - - var errorType = args.ErrorType; - var iErrorCode = args.ErrorCode; - - if (errorType == "ImageError" || errorType == "MediaError") { - return; - } - - var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; - - errMsg += "Code: "+ iErrorCode + " \n"; - errMsg += "Category: " + errorType + " \n"; - errMsg += "Message: " + args.ErrorMessage + " \n"; - - if (errorType == "ParserError") { - errMsg += "File: " + args.xamlFile + " \n"; - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - else if (errorType == "RuntimeError") { - if (args.lineNumber != 0) { - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - errMsg += "MethodName: " + args.methodName + " \n"; - } - - throw new Error(errMsg); - } - </script> -</head> -<body> - <form id="form1" runat="server" style="height:100%"> - <div id="silverlightControlHost"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> - <param name="source" value="ProgrammaticFocus.xap"/> - <param name="onError" value="onSilverlightError"/> - <param name="background" value="white"/> - <param name="minRuntimeVersion" value="4.0.50826.0"/> - <param name="autoUpgrade" value="true"/> - <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none"> - <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> - </a> - </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> - </form> -</body> -</html> diff --git a/working-examples/silverlight-replace-audio-with-transcript/ReplaceAudioWithTranscriptText.xap b/working-examples/silverlight-replace-audio-with-transcript/ReplaceAudioWithTranscriptText.xap deleted file mode 100644 index 9ed040f0b1..0000000000 Binary files a/working-examples/silverlight-replace-audio-with-transcript/ReplaceAudioWithTranscriptText.xap and /dev/null differ diff --git a/working-examples/silverlight-replace-audio-with-transcript/index.html b/working-examples/silverlight-replace-audio-with-transcript/index.html deleted file mode 100644 index bb48bc31d2..0000000000 --- a/working-examples/silverlight-replace-audio-with-transcript/index.html +++ /dev/null @@ -1,73 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" > -<!-- saved from url=(0014)about:internet --> -<head> - <title>ReplaceAudioWithTranscriptText</title> - <style type="text/css"> - html, body { - height: 100%; - overflow: auto; - } - body { - padding: 0; - margin: 0; - } - #silverlightControlHost { - height: 100%; - text-align:center; - } - </style> - - <script type="text/javascript"> - function onSilverlightError(sender, args) { - var appSource = ""; - if (sender != null && sender != 0) { - appSource = sender.getHost().Source; - } - - var errorType = args.ErrorType; - var iErrorCode = args.ErrorCode; - - if (errorType == "ImageError" || errorType == "MediaError") { - return; - } - - var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; - - errMsg += "Code: "+ iErrorCode + " \n"; - errMsg += "Category: " + errorType + " \n"; - errMsg += "Message: " + args.ErrorMessage + " \n"; - - if (errorType == "ParserError") { - errMsg += "File: " + args.xamlFile + " \n"; - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - else if (errorType == "RuntimeError") { - if (args.lineNumber != 0) { - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - errMsg += "MethodName: " + args.methodName + " \n"; - } - - throw new Error(errMsg); - } - </script> -</head> -<body> - <form id="form1" runat="server" style="height:100%"> - <div id="silverlightControlHost"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> - <param name="source" value="ReplaceAudioWithTranscriptText.xap"/> - <param name="onError" value="onSilverlightError"/> - <param name="background" value="white"/> - <param name="minRuntimeVersion" value="4.0.50826.0"/> - <param name="autoUpgrade" value="true"/> - <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none"> - <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> - </a> - </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> - </form> -</body> -</html> diff --git a/working-examples/silverlight-silver-fish/index.html b/working-examples/silverlight-silver-fish/index.html deleted file mode 100644 index c85cb61d54..0000000000 --- a/working-examples/silverlight-silver-fish/index.html +++ /dev/null @@ -1,20 +0,0 @@ - <html xmlns="http://www.w3.org/1999/xhtml" > - <head runat="server"> - <title>SilverFish</title> - </head> - <body> - <form id="form1" runat="server" style="height:100%"> - <div id="silverlightControl_en"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="25px" lang="en"> - <param name="source" value="ClientBin/SilverFish.xap"/> - </object> - </div> - <hr/> - <div id="silverlightControl_de"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="25px" lang="de"> - <param name="source" value="ClientBin/SilverFish_DE.xap"/> - </object - </div> - </form> - </body> - </html> diff --git a/working-examples/silverlight-simple-numeric-up-down/SimpleNumericUpDown.xap b/working-examples/silverlight-simple-numeric-up-down/SimpleNumericUpDown.xap deleted file mode 100644 index dbfb977df2..0000000000 Binary files a/working-examples/silverlight-simple-numeric-up-down/SimpleNumericUpDown.xap and /dev/null differ diff --git a/working-examples/silverlight-simple-numeric-up-down/index.html b/working-examples/silverlight-simple-numeric-up-down/index.html deleted file mode 100644 index b802078e6f..0000000000 --- a/working-examples/silverlight-simple-numeric-up-down/index.html +++ /dev/null @@ -1,73 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" > -<!-- saved from url=(0014)about:internet --> -<head> - <title>KeysNumericUpDown</title> - <style type="text/css"> - html, body { - height: 100%; - overflow: auto; - } - body { - padding: 0; - margin: 0; - } - #silverlightControlHost { - height: 100%; - text-align:center; - } - </style> - - <script type="text/javascript"> - function onSilverlightError(sender, args) { - var appSource = ""; - if (sender != null && sender != 0) { - appSource = sender.getHost().Source; - } - - var errorType = args.ErrorType; - var iErrorCode = args.ErrorCode; - - if (errorType == "ImageError" || errorType == "MediaError") { - return; - } - - var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; - - errMsg += "Code: "+ iErrorCode + " \n"; - errMsg += "Category: " + errorType + " \n"; - errMsg += "Message: " + args.ErrorMessage + " \n"; - - if (errorType == "ParserError") { - errMsg += "File: " + args.xamlFile + " \n"; - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - else if (errorType == "RuntimeError") { - if (args.lineNumber != 0) { - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - errMsg += "MethodName: " + args.methodName + " \n"; - } - - throw new Error(errMsg); - } - </script> -</head> -<body> - <form id="form1" runat="server" style="height:100%"> - <div id="silverlightControlHost"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> - <param name="source" value="SimpleNumericUpDown.xap"/> - <param name="onError" value="onSilverlightError"/> - <param name="background" value="white"/> - <param name="minRuntimeVersion" value="4.0.50826.0"/> - <param name="autoUpgrade" value="true"/> - <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none"> - <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> - </a> - </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> - </form> -</body> -</html> diff --git a/working-examples/silverlight-simple-peer-forwarding/SimplePeerForwarding.xap b/working-examples/silverlight-simple-peer-forwarding/SimplePeerForwarding.xap deleted file mode 100644 index 1ff76aec32..0000000000 Binary files a/working-examples/silverlight-simple-peer-forwarding/SimplePeerForwarding.xap and /dev/null differ diff --git a/working-examples/silverlight-simple-peer-forwarding/index.html b/working-examples/silverlight-simple-peer-forwarding/index.html deleted file mode 100644 index 3e16fa56aa..0000000000 --- a/working-examples/silverlight-simple-peer-forwarding/index.html +++ /dev/null @@ -1,73 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" > -<!-- saved from url=(0014)about:internet --> -<head> - <title>SimplePeerForwarding</title> - <style type="text/css"> - html, body { - height: 100%; - overflow: auto; - } - body { - padding: 0; - margin: 0; - } - #silverlightControlHost { - height: 100%; - text-align:center; - } - </style> - - <script type="text/javascript"> - function onSilverlightError(sender, args) { - var appSource = ""; - if (sender != null && sender != 0) { - appSource = sender.getHost().Source; - } - - var errorType = args.ErrorType; - var iErrorCode = args.ErrorCode; - - if (errorType == "ImageError" || errorType == "MediaError") { - return; - } - - var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; - - errMsg += "Code: "+ iErrorCode + " \n"; - errMsg += "Category: " + errorType + " \n"; - errMsg += "Message: " + args.ErrorMessage + " \n"; - - if (errorType == "ParserError") { - errMsg += "File: " + args.xamlFile + " \n"; - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - else if (errorType == "RuntimeError") { - if (args.lineNumber != 0) { - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - errMsg += "MethodName: " + args.methodName + " \n"; - } - - throw new Error(errMsg); - } - </script> -</head> -<body> - <form id="form1" runat="server" style="height:100%"> - <div id="silverlightControlHost"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> - <param name="source" value="SimplePeerForwarding.xap"/> - <param name="onError" value="onSilverlightError"/> - <param name="background" value="white"/> - <param name="minRuntimeVersion" value="4.0.50401.0"/> - <param name="autoUpgrade" value="true"/> - <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0" style="text-decoration:none"> - <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> - </a> - </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> - </form> -</body> -</html> diff --git a/working-examples/silverlight-stop-animation/StopAnimation.xap b/working-examples/silverlight-stop-animation/StopAnimation.xap deleted file mode 100644 index 4a187152aa..0000000000 Binary files a/working-examples/silverlight-stop-animation/StopAnimation.xap and /dev/null differ diff --git a/working-examples/silverlight-stop-animation/index.html b/working-examples/silverlight-stop-animation/index.html deleted file mode 100644 index ead18ca39d..0000000000 --- a/working-examples/silverlight-stop-animation/index.html +++ /dev/null @@ -1,73 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" > -<!-- saved from url=(0014)about:internet --> -<head> - <title>StopAnimation</title> - <style type="text/css"> - html, body { - height: 100%; - overflow: auto; - } - body { - padding: 0; - margin: 0; - } - #silverlightControlHost { - height: 100%; - text-align:center; - } - </style> - - <script type="text/javascript"> - function onSilverlightError(sender, args) { - var appSource = ""; - if (sender != null && sender != 0) { - appSource = sender.getHost().Source; - } - - var errorType = args.ErrorType; - var iErrorCode = args.ErrorCode; - - if (errorType == "ImageError" || errorType == "MediaError") { - return; - } - - var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; - - errMsg += "Code: "+ iErrorCode + " \n"; - errMsg += "Category: " + errorType + " \n"; - errMsg += "Message: " + args.ErrorMessage + " \n"; - - if (errorType == "ParserError") { - errMsg += "File: " + args.xamlFile + " \n"; - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - else if (errorType == "RuntimeError") { - if (args.lineNumber != 0) { - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - errMsg += "MethodName: " + args.methodName + " \n"; - } - - throw new Error(errMsg); - } - </script> -</head> -<body> - <form id="form1" runat="server" style="height:100%"> - <div id="silverlightControlHost"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> - <param name="source" value="StopAnimation.xap"/> - <param name="onError" value="onSilverlightError"/> - <param name="background" value="white"/> - <param name="minRuntimeVersion" value="4.0.50826.0"/> - <param name="autoUpgrade" value="true"/> - <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none"> - <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> - </a> - </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> - </form> -</body> -</html> diff --git a/working-examples/silverlight-style-switcher-font-size/StyleSwitcherFontSize.xap b/working-examples/silverlight-style-switcher-font-size/StyleSwitcherFontSize.xap deleted file mode 100644 index 4d88e9f662..0000000000 Binary files a/working-examples/silverlight-style-switcher-font-size/StyleSwitcherFontSize.xap and /dev/null differ diff --git a/working-examples/silverlight-style-switcher-font-size/index.html b/working-examples/silverlight-style-switcher-font-size/index.html deleted file mode 100644 index 3ef66b4927..0000000000 --- a/working-examples/silverlight-style-switcher-font-size/index.html +++ /dev/null @@ -1,73 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" > -<!-- saved from url=(0014)about:internet --> -<head> - <title>StyleSwitcherFontSize</title> - <style type="text/css"> - html, body { - height: 100%; - overflow: auto; - } - body { - padding: 0; - margin: 0; - } - #silverlightControlHost { - height: 100%; - text-align:center; - } - </style> - - <script type="text/javascript"> - function onSilverlightError(sender, args) { - var appSource = ""; - if (sender != null && sender != 0) { - appSource = sender.getHost().Source; - } - - var errorType = args.ErrorType; - var iErrorCode = args.ErrorCode; - - if (errorType == "ImageError" || errorType == "MediaError") { - return; - } - - var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; - - errMsg += "Code: "+ iErrorCode + " \n"; - errMsg += "Category: " + errorType + " \n"; - errMsg += "Message: " + args.ErrorMessage + " \n"; - - if (errorType == "ParserError") { - errMsg += "File: " + args.xamlFile + " \n"; - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - else if (errorType == "RuntimeError") { - if (args.lineNumber != 0) { - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - errMsg += "MethodName: " + args.methodName + " \n"; - } - - throw new Error(errMsg); - } - </script> -</head> -<body> - <form id="form1" runat="server" style="height:100%"> - <div id="silverlightControlHost"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> - <param name="source" value="StyleSwitcherFontSize.xap"/> - <param name="onError" value="onSilverlightError"/> - <param name="background" value="white"/> - <param name="minRuntimeVersion" value="4.0.50401.0"/> - <param name="autoUpgrade" value="true"/> - <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0" style="text-decoration:none"> - <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> - </a> - </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> - </form> -</body> -</html> diff --git a/working-examples/silverlight-tab-navigation/TabNavigation.xap b/working-examples/silverlight-tab-navigation/TabNavigation.xap deleted file mode 100644 index e6e96da72b..0000000000 Binary files a/working-examples/silverlight-tab-navigation/TabNavigation.xap and /dev/null differ diff --git a/working-examples/silverlight-tab-navigation/index.html b/working-examples/silverlight-tab-navigation/index.html deleted file mode 100644 index d1d8bec4f1..0000000000 --- a/working-examples/silverlight-tab-navigation/index.html +++ /dev/null @@ -1,73 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" > -<!-- saved from url=(0014)about:internet --> -<head> - <title>TabNavigation</title> - <style type="text/css"> - html, body { - height: 100%; - overflow: auto; - } - body { - padding: 0; - margin: 0; - } - #silverlightControlHost { - height: 100%; - text-align:center; - } - </style> - - <script type="text/javascript"> - function onSilverlightError(sender, args) { - var appSource = ""; - if (sender != null && sender != 0) { - appSource = sender.getHost().Source; - } - - var errorType = args.ErrorType; - var iErrorCode = args.ErrorCode; - - if (errorType == "ImageError" || errorType == "MediaError") { - return; - } - - var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; - - errMsg += "Code: "+ iErrorCode + " \n"; - errMsg += "Category: " + errorType + " \n"; - errMsg += "Message: " + args.ErrorMessage + " \n"; - - if (errorType == "ParserError") { - errMsg += "File: " + args.xamlFile + " \n"; - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - else if (errorType == "RuntimeError") { - if (args.lineNumber != 0) { - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - errMsg += "MethodName: " + args.methodName + " \n"; - } - - throw new Error(errMsg); - } - </script> -</head> -<body> - <form id="form1" runat="server" style="height:100%"> - <div id="silverlightControlHost"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> - <param name="source" value="TabNavigation.xap"/> - <param name="onError" value="onSilverlightError"/> - <param name="background" value="white"/> - <param name="minRuntimeVersion" value="4.0.50401.0"/> - <param name="autoUpgrade" value="true"/> - <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0" style="text-decoration:none"> - <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> - </a> - </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> - </form> -</body> -</html> diff --git a/working-examples/silverlight-tab-sequence-enabled/TabSequence_Enabled.xap b/working-examples/silverlight-tab-sequence-enabled/TabSequence_Enabled.xap deleted file mode 100644 index df65bb2639..0000000000 Binary files a/working-examples/silverlight-tab-sequence-enabled/TabSequence_Enabled.xap and /dev/null differ diff --git a/working-examples/silverlight-tab-sequence-enabled/index.html b/working-examples/silverlight-tab-sequence-enabled/index.html deleted file mode 100644 index 65bb846cfd..0000000000 --- a/working-examples/silverlight-tab-sequence-enabled/index.html +++ /dev/null @@ -1,73 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" > -<!-- saved from url=(0014)about:internet --> -<head> - <title>TabSequenceEnabled</title> - <style type="text/css"> - html, body { - height: 100%; - overflow: auto; - } - body { - padding: 0; - margin: 0; - } - #silverlightControlHost { - height: 100%; - text-align:center; - } - </style> - - <script type="text/javascript"> - function onSilverlightError(sender, args) { - var appSource = ""; - if (sender != null && sender != 0) { - appSource = sender.getHost().Source; - } - - var errorType = args.ErrorType; - var iErrorCode = args.ErrorCode; - - if (errorType == "ImageError" || errorType == "MediaError") { - return; - } - - var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; - - errMsg += "Code: "+ iErrorCode + " \n"; - errMsg += "Category: " + errorType + " \n"; - errMsg += "Message: " + args.ErrorMessage + " \n"; - - if (errorType == "ParserError") { - errMsg += "File: " + args.xamlFile + " \n"; - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - else if (errorType == "RuntimeError") { - if (args.lineNumber != 0) { - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - errMsg += "MethodName: " + args.methodName + " \n"; - } - - throw new Error(errMsg); - } - </script> -</head> -<body> - <form id="form1" runat="server" style="height:100%"> - <div id="silverlightControlHost"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> - <param name="source" value="TabSequenceEnabled.xap"/> - <param name="onError" value="onSilverlightError"/> - <param name="background" value="white"/> - <param name="minRuntimeVersion" value="4.0.50826.0"/> - <param name="autoUpgrade" value="true"/> - <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none"> - <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> - </a> - </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> - </form> -</body> -</html> diff --git a/working-examples/silverlight-tab-sequence-tab-index/TabSequence_Tabindex.xap b/working-examples/silverlight-tab-sequence-tab-index/TabSequence_Tabindex.xap deleted file mode 100644 index b0ae7d9ddf..0000000000 Binary files a/working-examples/silverlight-tab-sequence-tab-index/TabSequence_Tabindex.xap and /dev/null differ diff --git a/working-examples/silverlight-tab-sequence-tab-index/index.html b/working-examples/silverlight-tab-sequence-tab-index/index.html deleted file mode 100644 index 619eb974cd..0000000000 --- a/working-examples/silverlight-tab-sequence-tab-index/index.html +++ /dev/null @@ -1,73 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" > -<!-- saved from url=(0014)about:internet --> -<head> - <title>TabSequence_TabIndex</title> - <style type="text/css"> - html, body { - height: 100%; - overflow: auto; - } - body { - padding: 0; - margin: 0; - } - #silverlightControlHost { - height: 100%; - text-align:center; - } - </style> - - <script type="text/javascript"> - function onSilverlightError(sender, args) { - var appSource = ""; - if (sender != null && sender != 0) { - appSource = sender.getHost().Source; - } - - var errorType = args.ErrorType; - var iErrorCode = args.ErrorCode; - - if (errorType == "ImageError" || errorType == "MediaError") { - return; - } - - var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; - - errMsg += "Code: "+ iErrorCode + " \n"; - errMsg += "Category: " + errorType + " \n"; - errMsg += "Message: " + args.ErrorMessage + " \n"; - - if (errorType == "ParserError") { - errMsg += "File: " + args.xamlFile + " \n"; - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - else if (errorType == "RuntimeError") { - if (args.lineNumber != 0) { - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - errMsg += "MethodName: " + args.methodName + " \n"; - } - - throw new Error(errMsg); - } - </script> -</head> -<body> - <form id="form1" runat="server" style="height:100%"> - <div id="silverlightControlHost"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> - <param name="source" value="TabSequence_TabIndex.xap"/> - <param name="onError" value="onSilverlightError"/> - <param name="background" value="white"/> - <param name="minRuntimeVersion" value="4.0.50401.0"/> - <param name="autoUpgrade" value="true"/> - <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0" style="text-decoration:none"> - <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> - </a> - </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> - </form> -</body> -</html> diff --git a/working-examples/silverlight-tab-sequence/TabSequence.xap b/working-examples/silverlight-tab-sequence/TabSequence.xap deleted file mode 100644 index 1038372bbe..0000000000 Binary files a/working-examples/silverlight-tab-sequence/TabSequence.xap and /dev/null differ diff --git a/working-examples/silverlight-tab-sequence/index.html b/working-examples/silverlight-tab-sequence/index.html deleted file mode 100644 index 558c6fb5e1..0000000000 --- a/working-examples/silverlight-tab-sequence/index.html +++ /dev/null @@ -1,73 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" > -<!-- saved from url=(0014)about:internet --> -<head> - <title>TabSequence</title> - <style type="text/css"> - html, body { - height: 100%; - overflow: auto; - } - body { - padding: 0; - margin: 0; - } - #silverlightControlHost { - height: 100%; - text-align:center; - } - </style> - - <script type="text/javascript"> - function onSilverlightError(sender, args) { - var appSource = ""; - if (sender != null && sender != 0) { - appSource = sender.getHost().Source; - } - - var errorType = args.ErrorType; - var iErrorCode = args.ErrorCode; - - if (errorType == "ImageError" || errorType == "MediaError") { - return; - } - - var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; - - errMsg += "Code: "+ iErrorCode + " \n"; - errMsg += "Category: " + errorType + " \n"; - errMsg += "Message: " + args.ErrorMessage + " \n"; - - if (errorType == "ParserError") { - errMsg += "File: " + args.xamlFile + " \n"; - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - else if (errorType == "RuntimeError") { - if (args.lineNumber != 0) { - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - errMsg += "MethodName: " + args.methodName + " \n"; - } - - throw new Error(errMsg); - } - </script> -</head> -<body> - <form id="form1" runat="server" style="height:100%"> - <div id="silverlightControlHost"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> - <param name="source" value="TabSequence.xap"/> - <param name="onError" value="onSilverlightError"/> - <param name="background" value="white"/> - <param name="minRuntimeVersion" value="4.0.50401.0"/> - <param name="autoUpgrade" value="true"/> - <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0" style="text-decoration:none"> - <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> - </a> - </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> - </form> -</body> -</html> diff --git a/working-examples/silverlight-visible-focus-template/VisibleFocusTemplate.xap b/working-examples/silverlight-visible-focus-template/VisibleFocusTemplate.xap deleted file mode 100644 index 8725d51ae4..0000000000 Binary files a/working-examples/silverlight-visible-focus-template/VisibleFocusTemplate.xap and /dev/null differ diff --git a/working-examples/silverlight-visible-focus-template/index.html b/working-examples/silverlight-visible-focus-template/index.html deleted file mode 100644 index fbbd229150..0000000000 --- a/working-examples/silverlight-visible-focus-template/index.html +++ /dev/null @@ -1,73 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" > -<!-- saved from url=(0014)about:internet --> -<head> - <title>VisibleFocusTemplate</title> - <style type="text/css"> - html, body { - height: 100%; - overflow: auto; - } - body { - padding: 0; - margin: 0; - } - #silverlightControlHost { - height: 100%; - text-align:center; - } - </style> - - <script type="text/javascript"> - function onSilverlightError(sender, args) { - var appSource = ""; - if (sender != null && sender != 0) { - appSource = sender.getHost().Source; - } - - var errorType = args.ErrorType; - var iErrorCode = args.ErrorCode; - - if (errorType == "ImageError" || errorType == "MediaError") { - return; - } - - var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; - - errMsg += "Code: "+ iErrorCode + " \n"; - errMsg += "Category: " + errorType + " \n"; - errMsg += "Message: " + args.ErrorMessage + " \n"; - - if (errorType == "ParserError") { - errMsg += "File: " + args.xamlFile + " \n"; - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - else if (errorType == "RuntimeError") { - if (args.lineNumber != 0) { - errMsg += "Line: " + args.lineNumber + " \n"; - errMsg += "Position: " + args.charPosition + " \n"; - } - errMsg += "MethodName: " + args.methodName + " \n"; - } - - throw new Error(errMsg); - } - </script> -</head> -<body> - <form id="form1" runat="server" style="height:100%"> - <div id="silverlightControlHost"> - <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> - <param name="source" value="VisibleFocusTemplate.xap"/> - <param name="onError" value="onSilverlightError"/> - <param name="background" value="white"/> - <param name="minRuntimeVersion" value="4.0.50401.0"/> - <param name="autoUpgrade" value="true"/> - <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0" style="text-decoration:none"> - <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> - </a> - </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> - </form> -</body> -</html> diff --git a/working-examples/silverlight/screenshot_uia_objecttree.png b/working-examples/silverlight/screenshot_uia_objecttree.png deleted file mode 100644 index db6414f937..0000000000 Binary files a/working-examples/silverlight/screenshot_uia_objecttree.png and /dev/null differ diff --git a/working-examples/silverlight/stackpanelbuttonsorder.png b/working-examples/silverlight/stackpanelbuttonsorder.png deleted file mode 100644 index 0d39ced304..0000000000 Binary files a/working-examples/silverlight/stackpanelbuttonsorder.png and /dev/null differ