Comments: Issue 78 "Spacing"

The purpose of this page is to gather and organize comments on the proposed "Spacing" SC (GitHub Issue 78). Comments fall into the following areas:

Support

Support Comments
Summary Comment Commenter Date Comment or Email ID

Not Mature

Not Mature. User Agent issue.

My concern is that this really is a User agent issue.

David MacDonald 19 December 2016

David's spreadsheet and GitHub - 268033716

Mature I think it is "mature" and tech-neutral, but aimed at non-HTML technologies. Alastair Campbell

19 December 2016

GitHub - 268002360

Unsupported in Mobile

Not all browsers - particularly on mobile/tablet devices - support user stylesheets, and don't provide any browser/OS level controls that are this granular. Patrick H. Lauke 19 December 2016 GitHub - 268001666
Unsupported in Mobile no UA (on mobile/tablet) currently offers the necessary mechanism to satisfy the suggested requirement of the SC. Patrick H. Lauke 21 December 2016 GitHub - 268651663
Supported in HTML

I think there are a couple from LVTF are are essentially 'passed' when you use HTML based tech, but the idea was to include it to add the requirement other technologies. I believe this is one?

For anyone coming to it fresh it appears to ask for customisation, but that isn't the aim.

Alastair Campbell 19 December 2016 GitHub - 268002360
VIP PDF Reader supports VIP PDF Reader can adjust spacing Shawn Henry 19 January 2017 19 January 2017 LVTF meeting
PDF doesn't support (Acrobat reader) then user can't read the content. especially in PDF Shawn Henry

12 January 2017

5 January 2017 LVTF meeting
Acrobat DC supports Acrobat DC (not Acrobat reader) allows changes to line, character, and paragraph spacing, in editable PDFs. you can also change the font, font color, and font size. Jim Allan 16 January 2017 Git Hub - 273133638
Safari, Edge supports reader on Safari, Edge reflow page and change font, color, and spacing Jim Allan 5 January 2017 5 January 2017 LVTF meeting

 

Edge supports reading mode in Edge. can modify spacing etc David MacDonald

12 January 2017

12 January 2017 LVTF meeting
Limitations in some user agents

Other have pointed out the technical limitations for some user agents

Mike Gower 5 January 2017 GitHub - 270822241
Internet Explorer Supports via user style sheet without plugin

Maybe we can consider that Internet Explorer has this feature because it let user specify a user style sheet without any plugin or extension.

@goetsu (Aurélien Levy) 6 January 2017 GitHub - 270857877
Web components. Support unknown I think we should research web components a little. HTML5 might not be as easy to address as people think. Wayne Dick 16 January 2017 2017Jan/0019.html

Techniques

Techniques Comments
Summary Comment Commenter Date Comment or Email ID

Customization personalization

The only possible solution for an author to meet this SC would then be to implement a complete customisation/personalization system for their page/site, which is technically non-trivial and onerous (for a AA, and even a AAA). In my opinion, of course. Patrick H. Lauke 19 Decmber 2017 GitHub - 268001666
No Customization if HTML But no-one is saying that a website would have to provide customisation options. If you use HTML you pass, if you use something else, you may need to provide options. Alastair Campbell 19 December 2016 GitHub - 268046863
Gear icon I dread the thought of telling large companies to use up prime real estate (i.e. top right) with a gears icon and a bunch of CSS swapping radio buttons in there. Currently, EDGE reading mode is doing this kind of thing. So I agree with Patrick on this. I think this is too much for a dot release, given our other new LVTF requirements which are more mature and achievable. David MacDonald 19 December 2016

GitHub - 268033716

Widget needed authors effectively HAVE to provide a widget or some form of per-site personalization. Patrick H. Lauke 21 December 2016 GitHub - 268651663
Failure technique: authors using element-level CSS marked !important @slhenry mentioned that having a failure technique for authors using element-level CSS marked important for spacing would be helpful for people with low vision because per @WayneEDick users can't overwrite that to what they need. Both Wayne and Shawn are user style sheet users. Laura Carlson 5 January 2017 GitHub - 270716413
failure examples for !important ...failure examples could then include things like !important and style attributes? Patrick H. Lauke 8 January 2017 GitHub - 271164347
Widget not needed. Rather authors should not impose barriers on user CSS ...this SC is not about spacing widgets. It is more about letting People with Low Vision who use desktop browsers apply their own stylesheets without authors introducing barriers. Laura Carlson 5 January 2017 GitHub - 270725937
Add new general and CSS techniques There may be general techniques that could be written to ensure authors do not interfere with user agents (such as G204) or perhaps some CSS techniques which encourage rather than limit malleable spacing. Mike Gower 5 January 2017 GitHub - 270822241
Element level access to spacing and ARIA I say we modify our SCs to be element level access to spacing, font-family and color. The problem is easily solvable with ARIA. It is not without. We don't have to look far at all for a failure. The W3C Wiki fails element level customization. Wayne Dick

14 January 2017

2017Jan/0013.html

"Mechanism is available" Language

"Mechanism" Language Comments
Summary Comment Commenter Date Comment or Email ID
Current "mechanism" text gives impression of widgets required The proposed text does say that "a mechanism is available...", which gives the impression of add-on widgets. Ideas to reword it? Laura Carlson 20 December 2016 GitHub - 268237148
Idea to reword

So it seems people are having a similar reaction to me when when I joined the LVTF, thinking that it is requiring on-page widgets when in fact HTML passes by default.

There needs to be a way of saying that in the SC text, but somehow not make it technology specific!?

The closest thing in WCAG 2.0 is from 1.4.5 Images of text, which starts: “If the technologies being used can achieve…”

Perhaps something like “If the technologies being used do not provide element level access, a mechanism is available to achieve the following:"

Where "element level access" is a term for markup languages. Any other ideas?

Alastair Campbell 21 December 2016 GitHub - 268530368
Widgets required In practice, even with that particular text, it would mean requiring even HTML/CSS based sites that are to be displayed on the currently common mobile platforms/browsers to provide actual widgets/personalization options (since to my knowledge none of the browsers on iOS/Android/Windows Mobile provide this sort of element-level granular control, nor any form of user stylesheet options). So this seems very ambitious and onerous as a AA, even with that text. Patrick H. Lauke 21 December 2016 GitHub - 268626340
Customized mechanism required The SC does not just call for the ability for users to control spacing, but specifies that a "mechanism" is available to provide that spacing. From that perspective I feel that it does imply that authors are required to customize a mechanism....if someone wanted to support accessibility on such a user agent, they would need to provide a mechanism. Mike Gower 5 January 2017 GitHub - 270822241
User CSS is the mechanism

In fact a mechanism does exist for at least two user agents to enable user style sheets. So mechanisms exist that are available to users with low vision to apply user style sheets. So, If one uses a laptop or a desktop one can change line, letter and word spacing.

If no mechanism exists for a technology then authors are off the hook...

Wayne Dick 8 January 2017 #GitHub - 271162367
Mechanism is not a restriction.

The term a mechanism does not imply a user agent restriction. For example, the accessibility API for a system is a mechanism, without which much of WCAG and ARIA are useless. User style sheets and user agent extensions are such mechanisms. Fortunately two major user agents have extensions that support user style sheets. That means that a mechanism exists to change style, presentations like, spacing and font-family.

If no user agent for a given file technology exists that provides this mechanism, then the author is not responsible for supporting the mechanism using that file technology. However, if a user agent exists with that support then the author must do nothing to interfere with that support.

...

To say that user style sheets are not an existing mechanism is just technology bias. WCAG is not supposed to be technology bias for assistive technology either.

Wayne Dick 9 January 2017 GitHub - 271369154

User Stylesheets is the intended "Mechanism"

User Stylesheets as the "Mechanism" Comments
Summary Comment Commenter Date Comment or Email ID
Per LVTF: need ability for users to apply their own stylesheets in desktop browsers without authors introducing barriers. ...this SC is not about spacing widgets. It is more about letting People with Low Vision who use desktop browsers apply their own stylesheets without authors introducing barriers. Laura Carlson 5 January 2017 GitHub - 270725937

Asked for "ideal" user stylesheet.

Asked for example of where !important can't be overwritten by users.

Both @slhenry and @WayneEDick are user style sheet users. Shawn and Wayne would it be possible for you two to collaborate to create such a sample "ideal" user stylesheet?

In the the 5 January 2017 LVTF meeting it was mentioned that !important can't be overwritten by users.

Shawn and Wayne, do either of you have an example of where this has occurred for you?

Laura Carlson 6 January 2017 GitHub - 270903951
User css limitations in some user agents

I agree we must have an exception if the UA doesn't have a feature to let user change spacing adjustments but are you aware of any UA that allow to change it ?

From what I know it not the case for at least Firefox, Safari and Internet Explorer so basically this SC will be always non applicable for now.

Maybe we can consider that Internet Explorer has this feature because it let user specify a user style sheet without any plugin or extension. But, in that case the failure you mention doesn't work because user stylesheet value marked as !important have more weight than author value marked as !important. So the issue isn't about using !important or not it's more about the face that when user use is own stylesheet content must not become unreable if his stylesheet increase spacing

@goetsu (Aurélien Levy) 6 January 2017 GitHub - 270857877

User stylesheet supported: IE & Safari. Plugin needed for Firefox & Chrome

!important user styles takes precedence over author styles

Sample "ideal" user stylesheet needed for consistent testing

 

Indeed, if user styles are the intended "mechanism" that comes out of the box (rather than requiring an explicit widget etc), it seems that user stylesheets are currently are not supported by Edge at all, and supported in Firefox and Chrome only through the use of third-party plugins. Internet Explorer and Safari still provide options in their settings for them (in IE: Internet Options > General > Accessibility; in Safari: Safari menu > Preferences > Advanced).

And yes, @goetsu is right that !important in a user style should take precedence over author styles, even when those have !important too.

So the issue isn't about using !important or not it's more about the face that when user use is own stylesheet content must not become unreable if his stylesheet increase spacing

The one danger I can see here is that user styles are an unknown quantity for both authors and auditors. It will be difficult to explicitly author against and test all possible values/ways in which user styles try to affect a page. At the very least, a sample "ideal" user stylesheet should be provided for consistent testing, but that still won't guarantee that real-world user stylesheets will do exactly the same, and may still result in situations where a site does not display correctly anymore due to some unforeseen user CSS.

Patrick H. Lauke 6 January 2017 GitHub - 270876852
authors should not code in a way to prevent user styles

...I don't see why authors of HTML should not code in a way to prevent user style. One that I have run into for example is the use of !important is "style" parameters.

Wayne Dick 8 January 2017 #GitHub - 271162367
Author !important and inline style attributes are not a problem. User CSS override. Why would !important and inline style attributes fail? An element defined with !important in the user style sheet will override both of these in the source document as far as I'm aware. James Nurthen 8 January 2017 GitHub - 271169951
!important and inline style attributes are not a problem. User CSS overrides. Just tested this, and yes you're right: providing that a user stylesheet is written appropriately, !important in the author's styles and style attributes do NOT override the user styles. As such, I'd be interested in seeing some hard examples of where authors are breaking user styles... (and where it's not simply the user styles that need to be written more specifically with their selectors - e.g. not just setting style rules purely on body or html, but perhaps using catch-all star selectors * { ... } ) Patrick H. Lauke 8 January 2017 GitHub - 271170859
!important and inline style attributes are a problem. I have seen very bad pages that include !important in "style" parameters of html elements. That is unacceptable. ​ Wayne Dick 9 January 2017 GitHub - 271369154
user css has the lowest priority

The instances of inline !important are rare, but I have found them very hard to override. The main problem is that user style sheets have the lowest priority of all, and inline style has the highest. However, the following extremely general CSS will ferret out most 'stinker' pages.

  • {
    line-height: 1.36 !important;
    letter-spacing: 0.03em !important;
    word-spacing: 0.07em !important;
    }

The only real problem caused by changing spacing, and I find it about every three months is that spacing acts a little like enlargement in that it usually takes more space. But most pages do this pretty well.

...

If a file format like HTML has a mechanism like user style sheets on some user agents then all an author has to do to test if a page passes is to include the CSS above as the very last style statement in their code. Last in the CSS line with !important beats everything, even specificity.

An accessibility tester can use Stylish with the same code. If any elements or classes fail to space they can be noted as failures.

This is a general issue with low vision. We need access to restyle. We do not want to force authors on technologies like Silverlight or PDF or rigid mobile to create local widgets. We just need authors to code accessibly for user agents that do support restyling. The former expectation is well beyond the scope of 2.1, but the latter splits the case into to technologies that can and technologies that cannot leaving the author off the hook.

Wayne Dick 9 January 2017 #GitHub - 271387144

When UAs user allow for user CSS those can override author CSS.

3rd party plug-ins and bookmarklets don't override author CSS so "important" may not be able to be overwritten.

.. In my experience when user agents allow for user styles those can override. However, many browser's don't offer this anymore and thus we must use tools, plug-ins and bookmarklets like the Stylish extension. When using these extensions the scripts are inserted into the page at the document level and thus "important" may not be able to be overwritten in my experience. @mraccess77 (Jon Avila) 9 January 2017 GitHub - 271371255
CSS Level 3 inheritance: user !important overrides author !important I'm not sure if this has changed – but in CSS Level 3 inheritance should be as follows: An important<https://www.w3.org/TR/2013/CR-css-cascade-3-20131003/#important0> declaration takes precedence over a normal declaration. Author and user style sheets may contain !important<https://www.w3.org/TR/2013/CR-css-cascade-3-20131003/#important> declarations, with user !important<https://www.w3.org/TR/2013/CR-css-cascade-3-20131003/#important> declarations overriding author !important<https://www.w3.org/TR/2013/CR-css-cascade-3-20131003/#important> declarations. This CSS feature improves accessibility of documents by giving users with special requirements (large fonts, color combinations, etc.) control over presentation.[1] 1 https://www.w3.org/TR/2013/CR-css-cascade-3-20131003/ @mraccess77 (Jon Avila) 9 January 2017 GitHub - 271390396

this is not a problem of priority, but rather of CSS specificity and cascade.

Author CSS with higher specificity in its selector overrides user CSS with a lower specificity.

this is not a problem of priority, but rather of CSS specificity and cascade. If you've got very generic style definitions in your user styles, they At the same level of CSS specificity, user styles (if implemented in the true sense, i.e. natively in browser rather than through a third-party extension that simply inserts them into the document level) trump inline styles, document styles, etc.

as a simplified example if you just define a very high level body { color: black; background: white; } or even body { color: black !important; background: white !important; } in the user stylesheet, and CSS with a higher specificity in its selector will override this...and this is simply the way CSS works. for instance, div#foo { ... } will have a higher specificity and override the lower specificity body { ... } selector.

Patrick H. Lauke 9 January 2017 GitHub - 271422604

Safari and IE: respects user styles over author inline styles.

Stylish extension: does not respect user styles over author inline styles

I put together a simple test case.

A spacing.css user stylesheet is available with Wayne's CSS declarations.

Laura Carlson 9 and 12 January 2017

GitHub - 271425624 and GitHub - 272233033

 

Requested examples in the wild of authors breaking user styles asked at the 12 January 2017 LVTF meeting if hard examples of where authors are breaking user styles can be provided. Laura Carlson 12 January 2017 GitHub - 272238861
Authors shouldn't prevent users changing CSS

need to be able to swap out stylesheets.

SC vs what is available. or what can be done today.

we want authors to not prevent users from changing their content to meet their needs

David MacDonald 12 January 2017 12 January 2017 LVTF meeting
Specificity makes writing user CSS Onerous jim: with css specificity, they user must look at the code and fined the classes and id associated with all elements on the page, then build the 'stylish' rule to make a page readable. Very onerous for users Jim Allan 12 January 2017 12 January 2017 LVTF meeting

 

Most users are not able to create their own style sheets The basic problem is that the majority of users are not able to create their own style sheets and the closest they will get is high contrast mode in Windows Scott McCormack 12 January 2017 12 January 2017 LVTF meeting

User CSS is a poor mechanism.

Investigating javascript solution

user styles are a poor way of fixing author styles.
... been experimenting with using javascript to apply user styles.
... line length - when the user puts max-width by whatever mechanism, what do authors need to do to not break the user demand
... the question is "what are we asking authors to do"
... back to question.... not much of a limitation. the issues is frameworks, extra plugins, server side styles, etc.
... authors are writing very specific styles for get around the plethora of css in use. which makes it hard for users to override styles

https://alastairc.ac/tests/layouts/percentages-rwd.html

links can work as bookmarklet to work on any site.

because it is javascript it can be more selective

Alastair Campbell 12 January 2017 12 January 2017 LVTF meeting

Add/Change SC Language

Language Comments
Summary Comment Commenter Date Comment or Email ID
user groups would not be using devices/UAs that don't provide this customization option Not sure how this tension could be resolved...if what the SC is proposing is indeed needed by particular user groups, one could argue that those user groups would not be using devices/UAs that don't provide this customisation option, but that's potentially a self-fulfilling prophecy/circular argument, unless I'm missing something obvious... Patrick H. Lauke 21 December 2016 GitHub - 268651663
rephrase for authors ability do, not what user overrides.

need to rephrase for things the author can do, not what user overrides.

Alastair Campbell

5 January 2017

5 January 2017 LVTF meeting
Reword to exempt UAs that do not provide a way to adjust spacing

On the January 5, 2016 LVTF call we discussed having an exception for UAs that do not provide a way to adjust spacing. If the user-agent does not have a way (such as mobile does not currently allow user style sheets), authors would be exempt. This SC would not be applicable in those cases.

However, authors would be responsible for where it is indeed feasible such as HTML on desktops. Lots of low vision folks can't do things on mobile but having this SC at AA where it is accessibility supported via user stylesheets would be a big benefit.

First attempt at rewording the SC:

For the visual presentation of blocks of text:

  • character spacing can be selected by the user
  • word spacing can be selected by the user
  • line spacing can be selected by the user
  • paragraph spacing can be selected by the user

with following the exceptions:

  • If the user agent prohibits spacing adjustments the content is exempt.
Laura Carlson 5 January 2017 GitHub - 270716413
Use "adjusted" instead of "selected."

If the SC wording was altered so that the requirement was not to provide a mechanism, I wonder if this might be easier to consider as a AA. For instance:

For all text presented in the content, each of the following is true:

  • word spacing can be adjusted by the user
  • line spacing can be adjusted by the user
  • paragraph spacing can be adjusted by the user
Mike Gower 5 January 2017 GitHub - 270822241
Exempt clause needed

I agree we must have an exception if the UA doesn't have a feature to let user change spacing adjustments

@goetsu (Aurélien Levy) 6 January 2017 GitHub - 270857877
Add note: standard HTML passes

I would also recommend a note similar to 4.1.2:

"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."

Bruce Bailey 3 January 2017 GitHub - 270140919
Exception language frees authors where no UA exists for spacing

I really think that the exception language of Laura frees authors of technologies where no user agent exists with support of spacing control.

Wayne Dick 9 January 2017 GitHub - 271387144
disagrees with exception language

<shawn> [ Shawn is not cool with that exception ]

<shawn> Content is not accessible if users cannot change line spacing

...

what about alistairs language to not get in the way of CSS.
... can we propose spacing without the exception. it can be met automatically by html unless you use !important at page level element.

Shawn Henry

12 January 2017

12 January 2017 LVTF meeting
Edit SC to allow element level access to spacing I say we modify our SCs to be element level access to spacing, font-family and color. The problem is easily solvable with ARIA. It is not without. We don't have to look far at all for a failure. The W3C Wiki fails element level customization. Wayne Dick

14 January 2017

2017Jan/0013.html

Combine Success Criterion

Combine SC Comments
Generalize (expand/combine) the SC so that all sorts of presentational attributes (beyond just spacing) can be changed using user styles ...why not generalise the SC so that all sorts of presentational attributes (beyond just spacing) can be changed using user styles or similar? And the failure examples could then include things like !important and style attributes? Patrick H. Lauke 8 January 2017 GitHub - 271164347
Combine: Use a union model

I think that the LVTF should support SC's for spacing and font-family even if we cannot come up with an example of HTML that does not allow a JavaScript modification.

The reason is this. This level of support should have been part of 1.3.1. It wasn't because WCAG WG used an intersection model. if a necessary accommodation was not supported by all technologies, we could not make an SC blocking certain authoring techniques.

Our language lets the author off the hook on a platform or in a file language that can't support the change. This is a union model. If there is one user agent that supports the feature then authors must write design their page so that it does not conflict with that support. We can even say one commonly used agent.

This model means that we should combine our techniques into one, so that a person can get feature x only on browser A but needs to go to browser B for feature y.

Wayne Dick

16 January 2017

2017Jan/0018.html
Combine user-adaptation SCs I'd like to wrap up some of the general problems (perceived or otherwise) into one issue we can put to the working group. User-adaptation is what I'll call it for this email, so I'm referring to the SCs like Reflow, font-family, spacing, and text-colour. Also, there are some COGA SCs as well such as Visual presentation. Alastair Campbell 17 January 2017 2017Jan/0023.html

 

Level

Level Comments
Summary Comment Commenter Date Comment or Email ID

Non-trivial and onerous for AA, and even AAA

technically non-trivial and onerous (for a AA, and even a AAA). In my opinion, of course. Patrick H. Lauke 19 December 2016 GitHub - 268001666
Ambitious/onerous as AA seems very ambitious and onerous as a AA, even with that text. Patrick H. Lauke 21 December 2016 GitHub - 268626340
Better as AAA: implementation costly Is it an invitation for authors to implement feature to let user choose spacing he want ? in that case better to be AAA I think because can be costly to implement @goetsu (Aurélien Levy) 26 December 2016 GitHub - 269208353
OK at AAA

I am okay with this SC, but think it needs to be at same level as 1.4.8 (currently AAA) because (as compared to 1.4.8):

  • It does less for people low vision (I think)
  • It impacts the visual design more
  • It is more work for content authors
Bruce Bailey 3 January 2017 GitHub - 270140919
Difficult as AA

The SC does not just call for the ability for users to control spacing, but specifies that a "mechanism" is available to provide that spacing. From that perspective I feel that it does imply that authors are required to customize a mechanism.

There are 8 existing SC that refer to providing "mechanisms", six of which are AAA:

  • audio control (A)
  • visual presentation (AAA)
  • bypass blocks (A)
  • link purpose (AAA)
  • unusual words (AAA)
  • abbreviations (AAA)
  • pronunciation (AAA)
  • change on request (AAA)

These break down into 3 broad categories:

  1. situations where IF the author create certain potentially inaccessible content, they provide a means of overcoming it (automatically starting audio; using words in an unusual way; using abbreviations; repeating blocks of content on multiple pages )
  2. situations where IF authors don't follow best practices, they provide a means of overcoming the potential issue (link purpose not clear from link text alone; change of context are initiated without user request; meaning of word is ambiguous without knowing pronunciation)
  3. the mechanism offers manipulation of information, regardless of author decisions on content (Visual presentation

This candidate SC aligns very closely with the third case. In fact the 4th requirement for Visual presentation is a near-cousin ("Techniques to ensure 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").

Given that Visual Presentation is AAA, it is tough to rationalize giving this candidate SC a AA designation. As well, it's tough to say this should be a lower level than AAA, because unlike other A and AA that call for mechanisms due to author decisions, this one requires a mechanism regardless of what is being authored.

Mike Gower 5 January 2017 GitHub - 270822241
Perhaps AAA perhaps spacing as AAA. Jim Allan 12 January 2017 12 January 2017 LVTF meeting

 

Needs to be AA not AAA please spacing *not* at Level AAA - it's a solid AA for many people Shawn Henry 12 January 2017 12 January 2017 LVTF meeting