<!doctype html> <html> <head> <title>Check for Dpub Vocabulary Role Usage</title> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script> setup({explicit_timeout: true, explicit_done: true }); var theRoles = [ "doc-abstract", "doc-acknowledgments", "doc-afterword", "doc-appendix", "doc-backlink", "doc-biblioentry", "doc-bibliography", "doc-biblioref", "doc-chapter", "doc-colophon", "doc-conclusion", "doc-cover", "doc-credit", "doc-credits", "doc-dedication", "doc-endnote", "doc-endnotes", "doc-epigraph", "doc-epilogue", "doc-errata", "doc-example", "doc-footnote", "doc-foreword", "doc-glossary", "doc-glossref", "doc-index", "doc-introduction", "doc-noteref", "doc-notice", "doc-pagebreak", "doc-pagelist", "doc-part", "doc-preface", "doc-prologue", "doc-pullquote", "doc-qna", "doc-subtitle", "doc-tip", "doc-toc" ]; /* runTests - run tests against the content * * @param content - a string with the content to test */ function runTests(content) { 'use strict'; // keep track of the test number executed var testCounter = 1; // create a DOM tree for the content var theDOM = document.createElement("body"); // check the content - if it has a body element, strip up to it and after the // close content = content.replace(/\n/g, " "); if (content.search(/<body/i) !== -1) { // there is an opening body tag content = content.replace(/^.*<body[^>]*>/i, ''); if (content.search(/<\/[^>]*body/i) !== -1) { content = content.replace(/<\/[^>]*body.*$/i, ''); } } var parseFail = false ; var parseMessage = "" ; if ("" === content || content.search(/^ +$/) !== -1 ) { // there is NO content parseFail = true; parseMessage = "Content is empty"; } else { try { // add the content into the created body element theDOM.innerHTML = content; } catch(err) { parseFail = true; parseMessage = err; } } test(function() { assert_false(parseFail, parseMessage); }, testCounter + " Can parse submitted content"); testCounter += 1; // loop over the tree looking for roles with the values in theRoles theRoles.forEach(function(role) { var tName = testCounter + " " + "Uses role " + role; testCounter += 1; var nodes = theDOM.querySelectorAll('[role~="'+role+'"]'); if (nodes.length) { // there are matching nodes test(function() { assert_true(true, "Found the role"); }, tName); } }); done(); }; on_event(document, "DOMContentLoaded", function() { var runButton = document.getElementById('dpub-run') ; var closeButton = document.getElementById('dpub-close') ; on_event(runButton, "click", function() { var content = document.getElementById("dpub-input"); runTests(content.value); }); }); </script> </head> <body> <p>Fill the textarea below with the contents of a <code>body</code> element from HTML markup from that reflects your usage of DPub-ARIA roles. Then select "Run Test" to evaluate the content.</p> <form name="dpub" id="dpub"> <textarea name="dpub-input" id="dpub-input" style="width: 90%; height: 10em" ></textarea> <p><input type="button" id="dpub-run" name="Run Test" value="Run Test"> <input style="display: none" type="button" id="dpub-close" name="Close" value="Close"></p> </form> <div id="log"></div> </body> </html>