aboutsummaryrefslogtreecommitdiff
path: root/guidelines/accessibility/guideline-3.js
blob: 1be435421e0c8353bd8260ede11bed20da8ab74b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66

exports.name        = 'W3C Guideline 3';
exports.description = '';
exports.rule        = function(report) {

  /* Checkpoint 3.1 [Priority 2] **********************************************/

  // TODO: this seems pretty subjective, as you have to be able to understand
  // the intent of the content.  The math example is tough, as you'd have to be
  // able to pick out a situation where text wasn't marked up, but was also
  // mathematical notation.


  /* Checkpoint 3.2 [Priority 2] **********************************************/

  // require that the document contains a dtd.
  // TODO: how should we apply this check to iframes and such?
  if(!document.doctype) {
    report.error('No doctype given for the document', null);
  }


  /* Checkpoint 3.3 [Priority 2] **********************************************/

  // use style sheets instead of HTML attributes to specify formatting
  // information.
  $5('b').each(function() {
    report.error('The b tag shouldn\'t be used, use strong instead', this);
  });

  $5('i').each(function() {
    report.error('The i tag shouldn\'t be used, use em', this);
  });

  $5('[font]').each(function() {
    report.error('Use css instead of the font attribute for formatting', this);
  });

  // TODO: there are other cases to handle here, not sure about the best path
  // forward.


  /* Checkpoint 3.4 [Priority 2] **********************************************/

  // TODO: not sure what the best way to select everything that's not
  // automatically positioned.  Additionally, many fancy user interfaces will
  // use pixels when positioning content, which isn't necessarily wrong.


  /* Checkpoint 3.5 [Priority 2] **********************************************/

  // TODO: what's the best way to select siblings that match a given pattern in
  // jquery?  Essentially, we just want to match situations where h1 is followed
  // by something that's both a header, and not h2 (for example).


  /* Checkpoint 3.6 [Priority 2] **********************************************/


  /* Checkpoint 3.7 [Priority 2] **********************************************/

  // TODO: is there any way that we can detect quotations that aren't inside of
  // a blockquote region?


};