wai-website-theme 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/README.md +52 -0
  4. data/_data/lang.json +730 -0
  5. data/_data/techniques.yml +180 -0
  6. data/_data/wcag.yml +125 -0
  7. data/_includes/.DS_Store +0 -0
  8. data/_includes/body-class.html +1 -0
  9. data/_includes/box.html +10 -0
  10. data/_includes/excol.html +13 -0
  11. data/_includes/footer.html +40 -0
  12. data/_includes/head.html +23 -0
  13. data/_includes/header.html +59 -0
  14. data/_includes/icon.html +6 -0
  15. data/_includes/img.html +17 -0
  16. data/_includes/multilang-list-policy-links.html +29 -0
  17. data/_includes/multilang-list.html +35 -0
  18. data/_includes/multilang-policy-title.html +5 -0
  19. data/_includes/multilang-title-full.html +1 -0
  20. data/_includes/multilang-title.html +1 -0
  21. data/_includes/navlist.html +22 -0
  22. data/_includes/notes.html +2 -0
  23. data/_includes/prevnext.html +34 -0
  24. data/_includes/resources.html +19 -0
  25. data/_includes/sidenav.html +65 -0
  26. data/_includes/sidenote.html +14 -0
  27. data/_includes/toc.html +10 -0
  28. data/_includes/video-player.html +99 -0
  29. data/_layouts/default.html +26 -0
  30. data/_layouts/home.html +14 -0
  31. data/_layouts/news.html +21 -0
  32. data/_layouts/none.html +1 -0
  33. data/_layouts/policy.html +72 -0
  34. data/_layouts/sidenav.html +27 -0
  35. data/_layouts/sidenavsidebar.html +22 -0
  36. data/assets/ableplayer/.gitattributes +14 -0
  37. data/assets/ableplayer/.gitignore +7 -0
  38. data/assets/ableplayer/Gruntfile.js +105 -0
  39. data/assets/ableplayer/LICENSE +26 -0
  40. data/assets/ableplayer/README.md +656 -0
  41. data/assets/ableplayer/build/ableplayer.dist.js +12157 -0
  42. data/assets/ableplayer/build/ableplayer.js +12157 -0
  43. data/assets/ableplayer/build/ableplayer.min.css +2 -0
  44. data/assets/ableplayer/build/ableplayer.min.js +8 -0
  45. data/assets/ableplayer/button-icons/able-icons.svg +116 -0
  46. data/assets/ableplayer/button-icons/black/captions.png +0 -0
  47. data/assets/ableplayer/button-icons/black/chapters.png +0 -0
  48. data/assets/ableplayer/button-icons/black/close.png +0 -0
  49. data/assets/ableplayer/button-icons/black/descriptions.png +0 -0
  50. data/assets/ableplayer/button-icons/black/ellipsis.png +0 -0
  51. data/assets/ableplayer/button-icons/black/faster.png +0 -0
  52. data/assets/ableplayer/button-icons/black/forward.png +0 -0
  53. data/assets/ableplayer/button-icons/black/fullscreen-collapse.png +0 -0
  54. data/assets/ableplayer/button-icons/black/fullscreen-expand.png +0 -0
  55. data/assets/ableplayer/button-icons/black/help.png +0 -0
  56. data/assets/ableplayer/button-icons/black/next.png +0 -0
  57. data/assets/ableplayer/button-icons/black/pause.png +0 -0
  58. data/assets/ableplayer/button-icons/black/pipe.png +0 -0
  59. data/assets/ableplayer/button-icons/black/play.png +0 -0
  60. data/assets/ableplayer/button-icons/black/preferences.png +0 -0
  61. data/assets/ableplayer/button-icons/black/previous.png +0 -0
  62. data/assets/ableplayer/button-icons/black/rabbit.png +0 -0
  63. data/assets/ableplayer/button-icons/black/restart.png +0 -0
  64. data/assets/ableplayer/button-icons/black/rewind.png +0 -0
  65. data/assets/ableplayer/button-icons/black/sign.png +0 -0
  66. data/assets/ableplayer/button-icons/black/slower.png +0 -0
  67. data/assets/ableplayer/button-icons/black/stop.png +0 -0
  68. data/assets/ableplayer/button-icons/black/transcript.png +0 -0
  69. data/assets/ableplayer/button-icons/black/turtle.png +0 -0
  70. data/assets/ableplayer/button-icons/black/volume-loud.png +0 -0
  71. data/assets/ableplayer/button-icons/black/volume-medium.png +0 -0
  72. data/assets/ableplayer/button-icons/black/volume-mute.png +0 -0
  73. data/assets/ableplayer/button-icons/black/volume-soft.png +0 -0
  74. data/assets/ableplayer/button-icons/fonts/able.eot +0 -0
  75. data/assets/ableplayer/button-icons/fonts/able.svg +40 -0
  76. data/assets/ableplayer/button-icons/fonts/able.ttf +0 -0
  77. data/assets/ableplayer/button-icons/fonts/able.woff +0 -0
  78. data/assets/ableplayer/button-icons/white/captions.png +0 -0
  79. data/assets/ableplayer/button-icons/white/chapters.png +0 -0
  80. data/assets/ableplayer/button-icons/white/close.png +0 -0
  81. data/assets/ableplayer/button-icons/white/descriptions.png +0 -0
  82. data/assets/ableplayer/button-icons/white/ellipsis.png +0 -0
  83. data/assets/ableplayer/button-icons/white/faster.png +0 -0
  84. data/assets/ableplayer/button-icons/white/forward.png +0 -0
  85. data/assets/ableplayer/button-icons/white/fullscreen-collapse.png +0 -0
  86. data/assets/ableplayer/button-icons/white/fullscreen-expand.png +0 -0
  87. data/assets/ableplayer/button-icons/white/help.png +0 -0
  88. data/assets/ableplayer/button-icons/white/next.png +0 -0
  89. data/assets/ableplayer/button-icons/white/pause.png +0 -0
  90. data/assets/ableplayer/button-icons/white/pipe.png +0 -0
  91. data/assets/ableplayer/button-icons/white/play.png +0 -0
  92. data/assets/ableplayer/button-icons/white/preferences.png +0 -0
  93. data/assets/ableplayer/button-icons/white/previous.png +0 -0
  94. data/assets/ableplayer/button-icons/white/rabbit.png +0 -0
  95. data/assets/ableplayer/button-icons/white/restart.png +0 -0
  96. data/assets/ableplayer/button-icons/white/rewind.png +0 -0
  97. data/assets/ableplayer/button-icons/white/sign.png +0 -0
  98. data/assets/ableplayer/button-icons/white/slower.png +0 -0
  99. data/assets/ableplayer/button-icons/white/stop.png +0 -0
  100. data/assets/ableplayer/button-icons/white/transcript.png +0 -0
  101. data/assets/ableplayer/button-icons/white/turtle.png +0 -0
  102. data/assets/ableplayer/button-icons/white/volume-loud.png +0 -0
  103. data/assets/ableplayer/button-icons/white/volume-medium.png +0 -0
  104. data/assets/ableplayer/button-icons/white/volume-mute.png +0 -0
  105. data/assets/ableplayer/button-icons/white/volume-soft.png +0 -0
  106. data/assets/ableplayer/images/wingrip.png +0 -0
  107. data/assets/ableplayer/package.json +22 -0
  108. data/assets/ableplayer/scripts/JQuery.doWhen.js +113 -0
  109. data/assets/ableplayer/scripts/ableplayer-base.js +440 -0
  110. data/assets/ableplayer/scripts/browser.js +162 -0
  111. data/assets/ableplayer/scripts/buildplayer.js +1609 -0
  112. data/assets/ableplayer/scripts/caption.js +385 -0
  113. data/assets/ableplayer/scripts/chapters.js +242 -0
  114. data/assets/ableplayer/scripts/control.js +1514 -0
  115. data/assets/ableplayer/scripts/description.js +283 -0
  116. data/assets/ableplayer/scripts/dialog.js +147 -0
  117. data/assets/ableplayer/scripts/dragdrop.js +766 -0
  118. data/assets/ableplayer/scripts/event.js +595 -0
  119. data/assets/ableplayer/scripts/initialize.js +725 -0
  120. data/assets/ableplayer/scripts/langs.js +750 -0
  121. data/assets/ableplayer/scripts/metadata.js +134 -0
  122. data/assets/ableplayer/scripts/misc.js +72 -0
  123. data/assets/ableplayer/scripts/preference.js +909 -0
  124. data/assets/ableplayer/scripts/search.js +171 -0
  125. data/assets/ableplayer/scripts/sign.js +92 -0
  126. data/assets/ableplayer/scripts/slider.js +454 -0
  127. data/assets/ableplayer/scripts/track.js +296 -0
  128. data/assets/ableplayer/scripts/transcript.js +590 -0
  129. data/assets/ableplayer/scripts/translation.js +66 -0
  130. data/assets/ableplayer/scripts/volume.js +383 -0
  131. data/assets/ableplayer/scripts/webvtt.js +765 -0
  132. data/assets/ableplayer/scripts/youtube.js +471 -0
  133. data/assets/ableplayer/styles/ableplayer.css +1241 -0
  134. data/assets/ableplayer/thirdparty/js.cookie.js +145 -0
  135. data/assets/ableplayer/thirdparty/modernizr.custom.js +4 -0
  136. data/assets/ableplayer/translations/ca.js +1 -0
  137. data/assets/ableplayer/translations/de.js +1 -0
  138. data/assets/ableplayer/translations/en.js +305 -0
  139. data/assets/ableplayer/translations/es.js +305 -0
  140. data/assets/ableplayer/translations/fr.js +305 -0
  141. data/assets/ableplayer/translations/it.js +303 -0
  142. data/assets/ableplayer/translations/ja.js +305 -0
  143. data/assets/ableplayer/translations/nl.js +305 -0
  144. data/assets/css/style.css +4360 -0
  145. data/assets/css/style.css.map +1 -0
  146. data/assets/fonts/anonymouspro-bold.woff +0 -0
  147. data/assets/fonts/anonymouspro-bold.woff2 +0 -0
  148. data/assets/fonts/anonymouspro-bolditalic.woff +0 -0
  149. data/assets/fonts/anonymouspro-bolditalic.woff2 +0 -0
  150. data/assets/fonts/anonymouspro-italic.woff +0 -0
  151. data/assets/fonts/anonymouspro-italic.woff2 +0 -0
  152. data/assets/fonts/anonymouspro-regular.woff +0 -0
  153. data/assets/fonts/anonymouspro-regular.woff2 +0 -0
  154. data/assets/fonts/notosans-bold.woff +0 -0
  155. data/assets/fonts/notosans-bold.woff2 +0 -0
  156. data/assets/fonts/notosans-bolditalic.woff +0 -0
  157. data/assets/fonts/notosans-bolditalic.woff2 +0 -0
  158. data/assets/fonts/notosans-italic.woff +0 -0
  159. data/assets/fonts/notosans-italic.woff2 +0 -0
  160. data/assets/fonts/notosans-regular.woff +0 -0
  161. data/assets/fonts/notosans-regular.woff2 +0 -0
  162. data/assets/images/.DS_Store +0 -0
  163. data/assets/images/Shape.svg +10 -0
  164. data/assets/images/icon-related-content.svg +14 -0
  165. data/assets/images/icons.svg +126 -0
  166. data/assets/images/teaser-image@1x.jpg +0 -0
  167. data/assets/images/teaser-image@2x.jpg +0 -0
  168. data/assets/images/w3c.sketch +0 -0
  169. data/assets/images/w3c.svg +10 -0
  170. data/assets/scripts/jquery.min.js +4 -0
  171. data/assets/scripts/main.js +208 -0
  172. data/assets/scripts/svg4everybody.js +1 -0
  173. metadata +257 -0
@@ -0,0 +1,19 @@
1
+ {% include box.html type="start" title="Related WCAG 2.0 resources" id="related" class="large icon" icon="default" %}
2
+ <p>These tutorials provide best-practice guidance on implementing accessibility in different situations. This page combined the following WCAG 2.0 success criteria and techniques from different conformance levels:</p>
3
+ {% if page.wcag_success_criteria %}
4
+ <p><strong>Success Criteria:</strong></p>
5
+ <ul>
6
+ {%- for sc in site.data.wcag -%}
7
+ {%- if page.wcag_success_criteria contains sc.key -%}<li><a href="https://www.w3.org/WAI/WCAG20/quickref/#qr-{{sc.slug}}"><strong>{{sc.key}}</strong> {{sc.title}}:</a> {{sc.desc}} (Level&nbsp;{{sc.level}})</li>{%- endif -%}
8
+ {%- endfor -%}
9
+ </ul>
10
+ {% endif %}
11
+ {% if page.wcag_techniques %}
12
+ <p><strong>Techniques:</strong></p>
13
+ <ul>
14
+ {%- for tech in site.data.techniques -%}
15
+ {%- if page.wcag_techniques contains tech.key -%}<li><a href="https://www.w3.org/TR/WCAG20-TECHS/{{tech.key}}">{{tech.key}}: {{tech.desc}}</a></li>{%- endif -%}
16
+ {%- endfor -%}
17
+ </ul>
18
+ {% endif %}
19
+ {% include box.html type="end" %}
@@ -0,0 +1,65 @@
1
+ {% comment %}
2
+ The first section creates an array of page urls that are page urls of this collection. They then are compared to all page urls in the list below. Use group in the frontmatter to group pages.
3
+ {% endcomment %}
4
+ {% assign col = site.collections | where: "label", page.collection | first %}
5
+ <nav class="sidenav sn-contents" aria-label="Other Pages in this Resource">
6
+ <div class="sidenav--head"><div class="sidenav--head-icon">{% if col.icon %}{% include_cached icon.html name=col.icon class="sidenav--head-icon--inner" %}{% endif %}</div><div class="sidenav--head-title"><div class="sidenav--head-subsection">{% if col.shortname %}{{ col.shortname }}{% else %}{{ col.name }}{% endif %}</div>
7
+ </div>
8
+ </div>
9
+ <ul class="sidenav--list">
10
+
11
+ {% unless col.groups %}
12
+ {% assign documents = col.docs %}
13
+
14
+ {% for p in documents %}
15
+ {% if forloop.first %}
16
+ {% assign pgs = p.url %}
17
+ {% else %}
18
+ {% assign pgs = pgs | append: "," | append: p.url %}
19
+ {% endif %}
20
+ {% endfor %}
21
+ {% assign pgs = pgs | split: "," %}
22
+ {% assign my_pages = site.documents | sort: "order" %}
23
+ {% for my_page in my_pages %}
24
+ {% unless my_page.nosidenav %}{% if pgs contains my_page.url %}
25
+ <li><a class="page-link" {% if my_page.url == page.url %} aria-current="page" {% endif %} href="{{ my_page.url | prepend: site.github.url }}">{% if my_page.url == page.url %}{% include_cached icon.html name="chevron-right" %} {% endif %}{% if my_page.nav_title %}{{ my_page.nav_title }}{% else %}{{ my_page.title }}{% endif %}</a></li>
26
+ {% endif %}{% endunless %}
27
+ {% endfor %}
28
+ {% else %}
29
+ {% for group in col.groups %}
30
+
31
+ {% assign documents = col.docs | where: "group", page.group %}
32
+
33
+ {% unless my_page.nosidenav %}
34
+ <li><a class="page-link" {% if group.name == page.group %} aria-current="location" {% endif %} href="{{ site.github.url }}/{{page.collection}}/{% unless group.name == "index" %}{{ group.name}}/{% endunless%}">{{group.title}}</a>
35
+ {% if group.name == page.group %}
36
+ <ul>
37
+ {% for p in documents %}
38
+ {% if forloop.first %}
39
+ {% assign pgs = p.url %}
40
+ {% else %}
41
+ {% assign pgs = pgs | append: "," | append: p.url %}
42
+ {% endif %}
43
+ {% endfor %}
44
+ {% assign pgs = pgs | split: "," %}
45
+ {% assign my_pages = site.documents | sort: "order" %}
46
+ {% for my_page in my_pages %}
47
+ {% unless my_page.nosidenav %}{% if pgs contains my_page.url %}
48
+ <li><a class="page-link" {% if my_page.url == page.url %} aria-current="page" {% endif %} href="{{ my_page.url | prepend: site.github.url }}">{% if my_page.url == page.url %}{% include_cached icon.html name="chevron-right" %} {% endif %}{% if my_page.nav_title %}{{ my_page.nav_title }}{% else %}{{ my_page.title }}{% endif %}</a></li>
49
+ {% endif %}{% endunless %}
50
+ {% endfor %}
51
+
52
+ </ul>
53
+ {% endif %}
54
+ </li>
55
+ {% endunless %}
56
+
57
+ {% endfor%}
58
+ {% endunless %}
59
+
60
+
61
+
62
+
63
+
64
+ </ul>
65
+ </nav>
@@ -0,0 +1,14 @@
1
+ {% if include.type == 'start' %}
2
+ <div class="grid-6">
3
+ <div class="from-col1 to-col4">
4
+ {% endif %}
5
+ {% if include.type == 'middle' %}
6
+ </div>
7
+ <aside class="from-col5 to-col6">
8
+ {% include_cached box.html type="start" class="simple" %}
9
+ {% endif %}
10
+ {% if include.type == 'end' %}
11
+ {% include_cached box.html type="end" %}
12
+ </aside>
13
+ </div>
14
+ {% endif %}
@@ -0,0 +1,10 @@
1
+ {% if include.type == 'start' %}
2
+ {% assign classes = include.class | split: " " %}
3
+ <nav class="box box-simple{% for class in classes %} box-{{ class }}{% endfor %}" aria-labelledby="tocheading" id="toc">
4
+ <header id="tocheading" class="box-h box-h-simple{% for class in classes %} box-h-{{ class }}{% endfor %}{% if input.icon %} box-h-icon{% endif %}">{% if input.icon %} {% include_cached icon.html name=input.icon %}{% endif %} {{ include.title}}</header>
5
+ <div class="box-i">
6
+ {% endif %}
7
+ {% if include.type == 'end' %}
8
+ </div>
9
+ </nav>
10
+ {% endif %}
@@ -0,0 +1,99 @@
1
+ <div class="video-container" data-video-type="">
2
+ <video preload="metadata" data-youtube-id="{{include.yt-id}}" width="450">
3
+ {% assign captions = include.captions | split: ',' %}{% for caption in captions %}{% assign c = caption | split: '|' %}<track src="../cc/{{c[0]}}" label="{{c[2]}}" kind="captions" srclang="{{c[1]}}" default="" />{% endfor %}
4
+ {% assign descriptions = include.descriptions | split: ',' %}{% for desc in descriptions %}{% assign d = desc | split: '|' %}<track src="../cc/{{d[0]}}" label="{{d[2]}}" kind="descriptions" srclang="{{d[1]}}" default="" />{% endfor %}
5
+ </video>
6
+ </div>
7
+ {% if include.yt-id-ad %}
8
+ <div class="video-container" data-video-type="audio-described">
9
+ <video preload="metadata" data-youtube-id="{{include.yt-id-ad}}" width="450">
10
+ {% assign captions = include.captions-ad | split: ',' %}{% for caption in captions %}{% assign c = caption | split: '|' %}<track src="../cc/{{c[0]}}" label="{{c[2]}}" kind="captions" srclang="{{c[1]}}" default="" />{% endfor %}
11
+ {% assign descriptions = include.descriptions-ad | split: ',' %}{% for desc in descriptions %}{% assign d = desc | split: '|' %}<track src="../cc/{{d[0]}}" label="{{d[2]}}" kind="descriptions" srclang="{{d[1]}}" default="" />{% endfor %}
12
+ </video>
13
+ </div>
14
+ <p><button id="audio_description_button"><svg aria-hidden="true" class="icon-audio-description "><use xlink:href="{{ "/assets/images/icons.svg#icon-audio-description" | prepend: site.github.url }}"></use></svg> <span>Enable Audio Description</span></button></p>
15
+ {% endif %}
16
+
17
+ <script src="{{ site.github.url }}/assets/ableplayer/thirdparty/modernizr.custom.js"></script>
18
+ <script src="{{ site.github.url }}/assets/scripts/jquery.min.js"></script>
19
+ <script src="{{ site.github.url }}/assets/ableplayer/thirdparty/js.cookie.js"></script>
20
+ <script src="{{ site.github.url }}/assets/ableplayer/build/ableplayer.min.js"></script>
21
+ <script>
22
+ var youTubeDataAPIKey = "{{site.ytapi}}";
23
+ var googleApiReady = false;
24
+ function initGoogleClientApi() {
25
+ googleApiReady = true;
26
+ }
27
+ </script>
28
+ <script src="//apis.google.com/js/client.js?onload=initGoogleClientApi"></script>
29
+
30
+ <script>
31
+ (function () {
32
+ 'use strict';
33
+
34
+ var player1 = new AblePlayer($('[data-video-type=""] video'));
35
+ var player2 = new AblePlayer($('[data-video-type="audio-described"] video'));
36
+
37
+ function addclass(el, className) {
38
+ if (el.classList) {
39
+ el.classList.add(className);
40
+ } else {
41
+ if(! hasclass(el, className)){
42
+ el.className += ' ' + className;
43
+ }
44
+ }
45
+ }
46
+
47
+ function removeclass(el, className) {
48
+ if (el.classList) {
49
+ el.classList.remove(className);
50
+ } else {
51
+ el.className = el.className.replace(new RegExp('(^|\\b)' + className.split(' ').join('|') + '(\\b|$)', 'gi'), ' ');
52
+ }
53
+ }
54
+
55
+ function hasclass(el, className) {
56
+ if (el.classList) {
57
+ return el.classList.contains(className);
58
+ } else {
59
+ return new RegExp('(^| )' + className + '( |$)', 'gi').test(el.className);
60
+ }
61
+ }
62
+
63
+ var audiodescribed = document.querySelectorAll('[data-video-type="audio-described"]');
64
+
65
+ Array.prototype.forEach.call(audiodescribed, function(el, i){
66
+ el.setAttribute('hidden', true);
67
+ });
68
+
69
+ var adbutton = document.querySelector('#audio_description_button');
70
+ adbutton.addEventListener('click', function(e){
71
+ player1.pauseMedia();
72
+ player2.pauseMedia();
73
+ if (e.target.getAttribute('data-status') == "audio-described") {
74
+ var videos = document.querySelectorAll('.video-container');
75
+ Array.prototype.forEach.call(videos, function(el, i){
76
+ el.removeAttribute("hidden");
77
+ });
78
+ var nonaudiodescribed = document.querySelectorAll('[data-video-type="audio-described"]');
79
+ Array.prototype.forEach.call(nonaudiodescribed, function(el, i){
80
+ el.setAttribute('hidden', true);
81
+ });
82
+ e.target.setAttribute('data-status', 'non-audio-described');
83
+ e.target.querySelector('span').innerHTML = 'Enable Audio Description';
84
+ } else {
85
+ var videos = document.querySelectorAll('.video-container');
86
+ Array.prototype.forEach.call(videos, function(el, i){
87
+ el.setAttribute('hidden', true);
88
+ });
89
+ var nonaudiodescribed = document.querySelectorAll('[data-video-type="audio-described"]');
90
+ Array.prototype.forEach.call(nonaudiodescribed, function(el, i){
91
+ el.removeAttribute("hidden");
92
+ });
93
+ e.target.setAttribute('data-status', 'audio-described');
94
+ e.target.querySelector('span').innerHTML = 'Disable Audio Description';
95
+ }
96
+ });
97
+
98
+ }());
99
+ </script>
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en" prefix="og: http://ogp.me/ns#">
3
+ {% include head.html %}
4
+ <body id="top" class="{% include body-class.html %}">
5
+ {% include header.html %}
6
+
7
+ <main id="main" class="default-grid with-gap{% unless page.noleftcol %} leftcol{% endunless %}" tabindex="-1">
8
+
9
+ <article>
10
+ <h1>{{ page.title }}</h1>
11
+ {{ content }}
12
+
13
+ {{page.wcag_success_criteria}}{{page.wcag_techniques}}
14
+ {% if page.wcag_success_criteria or page.wcag_techniques %}
15
+ {% include resources.html %}
16
+ {% endif %}
17
+
18
+ {% include prevnext.html %}
19
+ </article>
20
+ <a class="button button-backtotop" href="#top"><span>{% include_cached icon.html name="arrow-up" %} Back to Top</span></a>
21
+ </main>
22
+
23
+ {% include footer.html %}
24
+
25
+ </body>
26
+ </html>
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en" prefix="og: http://ogp.me/ns#">
3
+ {% include head.html %}
4
+ <body id="top" class="{% include body-class.html %}">
5
+
6
+ {% include header.html %}
7
+ <main id="main" tabindex="-1">
8
+ {{content}}
9
+ </main>
10
+
11
+ {% include footer.html %}
12
+
13
+ </body>
14
+ </html>
@@ -0,0 +1,21 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en" prefix="og: http://ogp.me/ns#">
3
+ {% include head.html %}
4
+ <body id="top" class="{% include body-class.html %}">
5
+ {% include header.html %}
6
+
7
+ <main id="main" tabindex="-1">
8
+ <div class="grid-five-three">
9
+ <div class="col12">
10
+ <h1>{{ page.title }}</h1>
11
+ </div>
12
+ </div>
13
+ {{ content }}
14
+ {% include prevnext.html %}
15
+ <a class="button button-backtotop" href="#top"><span>{% include_cached icon.html name="arrow-up" %} Back to Top</span></a>
16
+ </main>
17
+
18
+ {% include footer.html %}
19
+
20
+ </body>
21
+ </html>
@@ -0,0 +1 @@
1
+ {{ content }}
@@ -0,0 +1,72 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en" prefix="og: http://ogp.me/ns#">
3
+ {% include head.html %}
4
+ <body id="top" class="{% include body-class.html %}">
5
+ {% include header.html %}
6
+
7
+ <main id="main" class="default-grid with-gap leftcol" tabindex="-1">
8
+
9
+ {% include sidenav.html %}
10
+
11
+ <article>
12
+ <h1 class="post-title">{% include multilang-title.html title=page.country %}</h1>
13
+
14
+ <div class="post-content">
15
+ <p>Last Updated: {{page.updated | date: "%-d %B %Y" }}{%if page.updatemsg%} – {{page.updatemsg}}{%endif%}</p>
16
+ {% if page.relatedpages %}{% for r in page.relatedpages %}<p>Related page: <a href="{{r.url}}">{{r.title}}</a></p>{% endfor %}{% endif %}
17
+ {% for p in page.policies %}
18
+ {% assign theslug = p.title.en | slugify %}
19
+ {% capture boxtitle %}
20
+ <h2 class="policy-heading">
21
+ {% include multilang-policy-title.html title=p.title %}
22
+ </h2>
23
+ {% endcapture %}
24
+ {% include box.html type="start" title=boxtitle class="large" id=theslug %}
25
+ <div>{% assign urlsize = p.url | size %}
26
+ <h3 style="margin-top:10px;">Official law/policy page{% if urlsize > 1 %}s{% endif %}</h3>
27
+ {% include multilang-list-policy-links.html title=p.title url=p.url external="true" wrap="h2" id=theslug class="policy-heading" %}
28
+ <h3>Details</h3>
29
+ <ul>
30
+ <li>Date enacted: {{p.enactdate}}</li>
31
+ <li>Responsible {%if p.ministries.size == 1%}Entity (Agency, Ministry, etc.){%else%}Entities (Agencies, Ministries, etc.){%endif%}:
32
+ <ul>
33
+ {% for m in p.ministries %}<li>{% include multilang-list.html title=m.title url=m.url external="true" %}</li>{% endfor %}
34
+ </ul>
35
+ </li>
36
+ <li>Type: {{p.type}}</li>
37
+ <li>Scope: {{p.scope}}</li>
38
+ <li>Web only: {%if p.webonly == true %}yes{% else %}no{%endif%}</li>
39
+ <li>WCAG Version Used: {{p.wcagver}}</li>
40
+ {% if p.standard %}
41
+ {% unless p.standard == "None" or p.standard == "none" or p.standard == false %}
42
+ {% if p.standard %}
43
+ <li>Relevant Standard{%if p.standard.size > 1 %}s{%endif%}:
44
+ <ul>
45
+ {% for d in p.standard %}<li>{% include multilang-list.html title=d.title url=d.url external="true" %}{%if d.desc %}<br>{{d.desc}}{%endif%}</li>{%endfor%}
46
+ </ul>
47
+ </li>
48
+ {% endif %}
49
+ {% endunless %}
50
+ {% endif %}
51
+ {% if p.documents %}
52
+ <li>Relevant Documents:
53
+ <ul>
54
+ {% for d in p.documents %}<li>{% include multilang-list.html title=d.title url=d.url external="true" %}{%if d.desc %}<br>{{d.desc}}{%endif%}</li>{%endfor%}
55
+ </ul>
56
+ </li>
57
+ {% endif %}
58
+ </ul>
59
+ </div>
60
+ {% include box.html type="end" %}
61
+ {% endfor %}
62
+ </div>
63
+ {% include prevnext.html %}
64
+ </article>
65
+ <a class="button button-backtotop" href="#top"><span>{% include_cached icon.html name="arrow-up" %} Back to Top</span></a>
66
+
67
+ </main>
68
+
69
+ {% include footer.html %}
70
+ <style>@import url('{{site.github.url}}/policies/css/policies.css');</style>
71
+ </body>
72
+ </html>
@@ -0,0 +1,27 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en" prefix="og: http://ogp.me/ns#">
3
+ {% include head.html %}
4
+ <body id="top" class="{% include body-class.html %}">
5
+ {% include header.html %}
6
+
7
+ <main id="main" class="default-grid with-gap leftcol" tabindex="-1">
8
+
9
+ {% include sidenav.html %}
10
+
11
+ <article>
12
+ <h1>{{ page.title }}</h1>
13
+ {{ content }}
14
+
15
+ {% if page.wcag_success_criteria or page.wcag_techniques %}
16
+ {% include resources.html %}
17
+ {% endif %}
18
+
19
+ {% include prevnext.html %}
20
+ </article>
21
+ <a class="button button-backtotop" href="#top"><span>{% include_cached icon.html name="arrow-up" %} Back to Top</span></a>
22
+ </main>
23
+
24
+ {% include footer.html %}
25
+
26
+ </body>
27
+ </html>
@@ -0,0 +1,22 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en" prefix="og: http://ogp.me/ns#">
3
+ {% include head.html %}
4
+ <body id="top" class="{% include body-class.html %}">
5
+ {% include header.html %}
6
+
7
+ <main id="main" class="default-grid with-gap leftcol" tabindex="-1">
8
+
9
+ {% include sidenav.html %}
10
+
11
+ <article class="content">
12
+ <h1>{{ page.title }}</h1>
13
+ {{ content }}
14
+ {% include prevnext.html %}
15
+ </article>
16
+ <a class="button button-backtotop" href="#top"><span>{% include_cached icon.html name="arrow-up" %} Back to Top</span></a>
17
+ </main>
18
+
19
+ {% include footer.html %}
20
+
21
+ </body>
22
+ </html>
@@ -0,0 +1,14 @@
1
+ # Set the default behavior, in case people don't have core.autocrlf set.
2
+ # Git will always convert line endings to LF on checkout, even on Windows
3
+ * text eol=lf
4
+
5
+ # Denote all files that are truly binary and should not be modified.
6
+ *.eot binary
7
+ *.ttf binary
8
+ *.woff binary
9
+ *.png binary
10
+ *.jpg bin
11
+ *.mp3 binary
12
+ *.ogg binary
13
+ *.mp4 binary
14
+ *.webm binary
@@ -0,0 +1,7 @@
1
+ .DS_Store
2
+ test.html
3
+ thirdparty/jwplayer.*
4
+ thirdparty/jquery-*.js
5
+ node_modules/
6
+ translations/???.js
7
+ .idea
@@ -0,0 +1,105 @@
1
+ module.exports = function(grunt) {
2
+
3
+ grunt.loadNpmTasks('grunt-contrib-uglify');
4
+ grunt.loadNpmTasks('grunt-contrib-concat');
5
+ grunt.loadNpmTasks('grunt-contrib-copy');
6
+ grunt.loadNpmTasks('grunt-contrib-cssmin');
7
+ grunt.loadNpmTasks('grunt-contrib-clean');
8
+ grunt.loadNpmTasks("grunt-remove-logging");
9
+ grunt.loadNpmTasks('grunt-contrib-jshint');
10
+
11
+ grunt.initConfig({
12
+ pkg: grunt.file.readJSON('package.json'),
13
+ concat: {
14
+ build: {
15
+ src: [
16
+ // Ultimately this should be just 'scripts/*.js',
17
+ // but for now we're maintaining the order which was
18
+ // specified in the previous 'compile.sh' script
19
+ 'scripts/ableplayer-base.js',
20
+ 'scripts/initialize.js',
21
+ 'scripts/preference.js',
22
+ 'scripts/webvtt.js',
23
+ 'scripts/buildplayer.js',
24
+ 'scripts/track.js',
25
+ 'scripts/youtube.js',
26
+ 'scripts/slider.js',
27
+ 'scripts/volume.js',
28
+ 'scripts/dialog.js',
29
+ 'scripts/misc.js',
30
+ 'scripts/description.js',
31
+ 'scripts/browser.js',
32
+ 'scripts/control.js',
33
+ 'scripts/caption.js',
34
+ 'scripts/chapters.js',
35
+ 'scripts/metadata.js',
36
+ 'scripts/transcript.js',
37
+ 'scripts/search.js',
38
+ 'scripts/event.js',
39
+ 'scripts/dragdrop.js',
40
+ 'scripts/sign.js',
41
+ 'scripts/langs.js',
42
+ 'scripts/translation.js',
43
+ 'scripts/JQuery.doWhen.js'
44
+ ],
45
+ dest: 'build/<%= pkg.name %>.js'
46
+ },
47
+ },
48
+ removelogging: {
49
+ dist: {
50
+ src: [
51
+ 'build/<%= pkg.name %>.js'
52
+ ],
53
+ dest: 'build/<%= pkg.name %>.dist.js'
54
+ },
55
+ options: {
56
+ // Remove all console output (see https://www.npmjs.com/package/grunt-remove-logging)
57
+ }
58
+ },
59
+ uglify: {
60
+ min: {
61
+ src : ['build/<%= pkg.name %>.dist.js'],
62
+ dest : 'build/<%= pkg.name %>.min.js',
63
+ },
64
+ options: {
65
+ // Add a banner with the package name and version
66
+ // (no date, otherwise a new build is different even if the code didn't change!)
67
+ banner: '/*! <%= pkg.name %> V<%= pkg.version %> */\n',
68
+ // Preserve comments that start with a bang (like the file header)
69
+ preserveComments: "some"
70
+ }
71
+ },
72
+ cssmin: {
73
+ min: {
74
+ src : [
75
+ 'styles/ableplayer.css',
76
+ ],
77
+ dest : 'build/<%= pkg.name %>.min.css',
78
+ },
79
+ options: {
80
+ // Add a banner with the package name and version
81
+ // (no date, otherwise a new build is different even if the code didn't change!)
82
+ // (oddly, here we don't need a '\n' at the end!)
83
+ banner: '/*! <%= pkg.name %> V<%= pkg.version %> */',
84
+ }
85
+ },
86
+ jshint: {
87
+ files: ['Gruntfile.js', 'scripts/**/*.js'],
88
+ options: {
89
+ // options here to override JSHint defaults
90
+ globals: {
91
+ browser: true,
92
+ jquery: true,
93
+ devel: true,
94
+ }
95
+ }
96
+ },
97
+ clean: {
98
+ build: ['build'],
99
+ },
100
+
101
+ });
102
+
103
+ grunt.registerTask('default', ['concat', 'removelogging', 'uglify', 'cssmin']);
104
+ grunt.registerTask('test', ['jshint']);
105
+ };
@@ -0,0 +1,26 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2014 University of Washington
4
+
5
+ Able Player development is supported in part by The AccessComputing project,
6
+ with financial support from the National Science Foundation
7
+ (grant #CNS-0540615, CNS-0837508, and CNS-1042260);
8
+ and by the Committee on Institutional Cooperation (CIC).
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in
18
+ all copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
26
+ THE SOFTWARE.