Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  browser_css_alt.js   Sprache: JAVA

 
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */


"use strict";

/* import-globals-from ../../mochitest/role.js */
loadScripts({ name: "role.js", dir: MOCHITESTS_DIR });

const IMAGE =
  'url("https://example.com/a11y/accessible/tests/mochitest/moz.png")';

/**
 * Test CSS content replacing an element.
 */

addAccessibleTask(
  `
<style>
  .twoStrings1 {
    content: ${IMAGE} / "re" "placed";
  }
  .twoStrings2 {
    content: ${IMAGE} / "RE" "PLACED";
  }
</style>
<h1 id="noAlt" style='content: ${IMAGE};'>noAlt</h1>
<h1 id="oneString" style='content: ${IMAGE} / "replaced";'>oneString</h1>
<h1 id="twoStrings" class="twoStrings1">twoStrings</h1>
<h1 id="attr" style='content: ${IMAGE} / attr(data-alt)' data-alt="replaced">attr</h1>
<h1 id="attrFallback" style='content: ${IMAGE} / attr(data-alt, "fallback")'>attrFallback</h1>
<h1 id="mixed" style='content: ${IMAGE} / "re" attr(data-alt, "fallback") attr(missing, "ed")' data-alt="plac">mixed</h1>
<h1 id="noInitialContent">noInitialContent</h1>
  `,
  async function testReplacing(browser, docAcc) {
    testAccessibleTree(findAccessibleChildByID(docAcc, "noAlt"), {
      role: ROLE_HEADING,
      children: [],
    });
    const oneString = findAccessibleChildByID(docAcc, "oneString");
    testAccessibleTree(oneString, {
      role: ROLE_HEADING,
      name: "replaced",
      children: [],
    });
    const twoStrings = findAccessibleChildByID(docAcc, "twoStrings");
    testAccessibleTree(twoStrings, {
      role: ROLE_HEADING,
      name: "replaced",
      children: [],
    });
    const attr = findAccessibleChildByID(docAcc, "attr");
    testAccessibleTree(attr, {
      role: ROLE_HEADING,
      name: "replaced",
      children: [],
    });
    const attrFallback = findAccessibleChildByID(docAcc, "attrFallback");
    testAccessibleTree(attrFallback, {
      role: ROLE_HEADING,
      name: "fallback",
      children: [],
    });
    testAccessibleTree(findAccessibleChildByID(docAcc, "mixed"), {
      role: ROLE_HEADING,
      name: "replaced",
      children: [],
    });

    info("Changing oneString content style");
    let changed = waitForEvent(EVENT_NAME_CHANGE, oneString);
    await invokeSetStyle(
      browser,
      "oneString",
      "content",
      `${IMAGE} / "REPLACED"`
    );
    await changed;
    testAccessibleTree(oneString, {
      role: ROLE_HEADING,
      name: "REPLACED",
      children: [],
    });

    info("Changing twoStrings class to twoStrings2");
    changed = waitForEvent(EVENT_NAME_CHANGE, twoStrings);
    await invokeSetAttribute(browser, "twoStrings""class""twoStrings2");
    await changed;
    testAccessibleTree(twoStrings, {
      role: ROLE_HEADING,
      name: "REPLACED",
      children: [],
    });

    info("Changing attr data-alt");
    changed = waitForEvent(EVENT_NAME_CHANGE, attr);
    await invokeSetAttribute(browser, "attr""data-alt""REPLACED");
    await changed;
    testAccessibleTree(attr, {
      role: ROLE_HEADING,
      name: "REPLACED",
      children: [],
    });

    info("Changing attrFallback data-alt");
    changed = waitForEvent(EVENT_NAME_CHANGE, attrFallback);
    await invokeSetAttribute(browser, "attrFallback""data-alt""replaced");
    await changed;
    testAccessibleTree(attrFallback, {
      role: ROLE_HEADING,
      name: "replaced",
      children: [],
    });

    const noInitialContent = findAccessibleChildByID(
      docAcc,
      "noInitialContent"
    );
    testAccessibleTree(noInitialContent, {
      role: ROLE_HEADING,
      name: "noInitialContent",
      children: [{ role: ROLE_TEXT_LEAF, name: "noInitialContent" }],
    });
    info("Add content prop to noInitialContent");
    changed = waitForEvent(EVENT_NAME_CHANGE, noInitialContent);
    await invokeSetStyle(
      browser,
      "noInitialContent",
      "content",
      `${IMAGE} / "replaced"`
    );
    await changed;
    testAccessibleTree(noInitialContent, {
      role: ROLE_HEADING,
      name: "replaced",
      children: [],
    });
  },
  { chrome: true, topLevel: true }
);

/**
 * Test CSS image content in pseudo-elements.
 */

addAccessibleTask(
  `
<style>
  #noAlt::before, #noAlt::after {
    content: ${IMAGE};
  }
  .strings1::before {
    content: ${IMAGE} / "be" "fore";
  }
  .strings2::before {
    content: ${IMAGE} / "BE" "FORE";
  }
  #strings::after {
    content: ${IMAGE} / "af" "ter";
  }
  #mixed::before {
    content: ${IMAGE} / "be" attr(data-alt);
  }
</style>
<h1 id="noAlt">noAlt</h1>
<h1 id="strings" class="strings1">inside</h1>
<h1 id="mixed" data-alt="fore">inside</h1>
  `,
  async function testImagePseudo(browser, docAcc) {
    testAccessibleTree(findAccessibleChildByID(docAcc, "noAlt"), {
      role: ROLE_HEADING,
      children: [{ role: ROLE_TEXT_LEAF, name: "noAlt" }],
    });
    const strings = findAccessibleChildByID(docAcc, "strings");
    testAccessibleTree(strings, {
      role: ROLE_HEADING,
      name: "before inside after",
      children: [
        { role: ROLE_GRAPHIC, name: "before" },
        { role: ROLE_TEXT_LEAF, name: "inside" },
        { role: ROLE_GRAPHIC, name: "after" },
      ],
    });
    const mixed = findAccessibleChildByID(docAcc, "mixed");
    testAccessibleTree(mixed, {
      role: ROLE_HEADING,
      name: "before inside",
      children: [
        { role: ROLE_GRAPHIC, name: "before" },
        { role: ROLE_TEXT_LEAF, name: "inside" },
      ],
    });

    info("Changing strings class to strings2");
    let changed = waitForEvent(EVENT_NAME_CHANGE, strings);
    await invokeSetAttribute(browser, "strings""class""strings2");
    await changed;
    testAccessibleTree(strings, {
      role: ROLE_HEADING,
      name: "BEFORE inside after",
      children: [
        { role: ROLE_GRAPHIC, name: "BEFORE" },
        { role: ROLE_TEXT_LEAF, name: "inside" },
        { role: ROLE_GRAPHIC, name: "after" },
      ],
    });

    info("Changing mixed data-alt");
    changed = waitForEvent(EVENT_NAME_CHANGE, mixed);
    await invokeSetAttribute(browser, "mixed""data-alt""FORE");
    await changed;
    testAccessibleTree(mixed, {
      role: ROLE_HEADING,
      name: "beFORE inside",
      children: [
        { role: ROLE_GRAPHIC, name: "beFORE" },
        { role: ROLE_TEXT_LEAF, name: "inside" },
      ],
    });
  },
  { chrome: true, topLevel: true }
);

/**
 * Test CSS text content in pseudo-elements.
 */

addAccessibleTask(
  `
<style>
  #noAlt::before {
    content: "before";
  }
  .strings1::before {
    content: "before" / "a" "lt";
  }
  .strings2::before {
    content: "before" / "A" "LT";
  }
  #mixed::before {
    content: "before" / "a" attr(data-alt);
  }
</style>
<h1 id="noAlt">noAlt</h1>
<h1 id="strings" class="strings1">inside</h1>
<h1 id="mixed" data-alt="lt">inside</h1>
  `,
  async function testTextPseudo(browser, docAcc) {
    testAccessibleTree(findAccessibleChildByID(docAcc, "noAlt"), {
      role: ROLE_HEADING,
      name: "beforenoAlt",
      children: [
        { role: ROLE_STATICTEXT, name: "before" },
        { role: ROLE_TEXT_LEAF, name: "noAlt" },
      ],
    });
    const strings = findAccessibleChildByID(docAcc, "strings");
    testAccessibleTree(strings, {
      role: ROLE_HEADING,
      name: "altinside",
      children: [
        { role: ROLE_STATICTEXT, name: "alt" },
        { role: ROLE_TEXT_LEAF, name: "inside" },
      ],
    });
    const mixed = findAccessibleChildByID(docAcc, "mixed");
    testAccessibleTree(mixed, {
      role: ROLE_HEADING,
      name: "altinside",
      children: [
        { role: ROLE_STATICTEXT, name: "alt" },
        { role: ROLE_TEXT_LEAF, name: "inside" },
      ],
    });

    info("Changing strings class to strings2");
    let changed = waitForEvent(EVENT_NAME_CHANGE, strings);
    await invokeSetAttribute(browser, "strings""class""strings2");
    await changed;
    testAccessibleTree(strings, {
      role: ROLE_HEADING,
      name: "ALTinside",
      children: [
        { role: ROLE_STATICTEXT, name: "ALT" },
        { role: ROLE_TEXT_LEAF, name: "inside" },
      ],
    });

    info("Changing mixed data-alt");
    changed = waitForEvent(EVENT_NAME_CHANGE, mixed);
    await invokeSetAttribute(browser, "mixed""data-alt""LT");
    await changed;
    testAccessibleTree(mixed, {
      role: ROLE_HEADING,
      name: "aLTinside",
      children: [
        { role: ROLE_STATICTEXT, name: "aLT" },
        { role: ROLE_TEXT_LEAF, name: "inside" },
      ],
    });
  },
  { chrome: true, topLevel: true }
);

Messung V0.5
C=93 H=95 G=93

¤ Dauer der Verarbeitung: 0.16 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge