# RE: Calculation Error

I don’t see any need to try to squash word spacing into equivalent letter spacing.  They are both easy to test and having values in the normative standard directly based on empirical evidence of readability has a lot of value.  Moreover, we shouldn’t make assumptions that the number of words will always be much less than the number of letters.

I also think that using a percentage increase factor as a guide is fine, but (a) we need to be careful about the algebra and (b) we need to keep in mind that large variances can occur given the characters use.  For example, factors for the sentences “Wayne has eyes” and “Jill is ill” should be quite different.

I tried to be thorough about the algebra in my GitHub comment<https://github.com/w3c/wcag21/issues/78#issuecomment-306992047>, which I’ll dumb down just to the final equation for space taken up per letter here:

spacePerLetter = avgLetterWidth + letterSpacing + (0.25em + wordSpacing - letterSpacing)*(numWords - 1)/numLetters

The default word spacing of 0.25em enters the equation, and this assumes of course that we can simplify the width of a letter to the averages computed by Wayne for a given font.  So, according to Wayne’s table, a typical font like Open Sans, Noto Sans, or similar have widths of about 8.6px (or 0.54em).

Next, we’ll assume the words-to-letters ratio is typical of Alastair’s example sentence, which has 49 letters and 8 words, so the final factor is 7/49 = 1/7.  (Note this is similar to Wayne’s use of 5em.)

Using this equation, the original space with no extra letter or word spacing would be:
0.54 + 0.25/7 = 0.576em

And with 0.045 letter and 0.16 word spacing (same font):
0.54 + 0.045 + (0.25 + 0.16 – 0.045)/7 = 0.637em

That’s about an 11% increase, which is different from Alastair’s 15% result because it doesn’t take into account the actual width of each letter in his sentence (or my math is just wrong ;)).

If we really want to get font in the success criterion somehow, either directly or indirectly, then we need to apply letter frequency analysis<https://en.wikipedia.org/wiki/Letter_frequency> first to get a more accurate picture of font width in practice.  The difference in frequency between the most and least common letters (at least in English) is quite extreme.

Steve

From: Alastair Campbell [mailto:acampbell@nomensa.com]
Sent: Friday, June 09, 2017 5:39 AM
To: Wayne Dick <wayneedick@gmail.com>; public-low-vision-a11y-tf <public-low-vision-a11y-tf@w3.org>
Subject: Re: Calculation Error

Ah, that’s great, we can get a useful result without as big an impact as I thought it might be.

I suggest two actions:

1.  We try to come to one measure for horizontal space increase.

2.  We use Wayne’s calculations (or a summary of) in the understanding doc to show the justification.

Wayne, we’re looking to come up with a total increase from possible letter space, font-family substitution and word spacing.

So if letter spacing is 0.045em, and word spacing is 0.16em, that makes a roughly 15% increase in width on my test sentence:
https://alastairc.ac/tests/word-spacing.html (at the bottom).

If we used a letter-spacing only of 0.065em, that comes out at the same size horizontally. (Note tiny differences in letter-spacing make a big difference, word-spacing not so much.)

Would that letter-spacing value suffice?

Cheers,

-Alastair

From: Wayne Dick

Just in  case I made some more errors, here is my code.

http://nosetothepage.org/fontApps/src/HTML/

http://nosetothepage.org/fontApps/src/js/

The relevant files are:
For indivudula font family at a time
fontWidth.html
fontWidthX.js
famStatt.HTML
famStats.js
famWidth.js

Wayne

On Thu, Jun 8, 2017 at 3:46 PM, Wayne Dick <wayneedick@gmail.com<mailto:wayneedick@gmail.com>> wrote:
The empirical test I left off: I used my sample string unicode 32-126 and inserted  spaces every five characters. Then I set the letter spacing to 0.045 and word spacing to 0.16. Then I ran the test on Tahoma. I got that the average space taken by each character was 9.24px. Without the spaces  and with normal spacing I got an average of 8.6px. 9.20/8.6=1.074. Pretty close to the theoretical estimate.

On Thu, Jun 8, 2017 at 3:10 PM, Wayne Dick <wayneedick@gmail.com<mailto:wayneedick@gmail.com>> wrote:
When Alastair did his computations and got 150% enlargement that set off a red flag for me. I double checked Alastair's computations and he is right.
Letter spacing should change to 0.045em NOT 0.12em.

My mistake was in using the research percentages applied to whole letters, not the space between them as the researcher MacLiesh suggested. Thus, our letter spacing should be applied to the spacing between letters, not to letters. That is 0.12x0.25=.03em.  There was actually an improvement up to 0.24 of the space between letters. Then the improvement flattened. I did a linear interpolation from 0 to 0.24 when I got 0.12. I think in this case the research max 0.06em could make size problems for developers, but the min 0.03em is a little small from my personal experience, and the research plots in the MacLeish research. Thus, I recommend linear interpolation again to get 0.045em.
Word spacing is correct because it is applied to 1em, (a space character approximately). However when we compute the size increase due to word spacing we must divide by the average word size (language dependent (about 5 in English usage)).  So, to compute the effect of letter spacing on text length we should apply the following multiplication factor:
(1+letter-spacing)(1+(1/5)word-spacing)<= (1+0.045)(1+0.32)=1.07844<1.08.
Empirical Evidence: Let us look at an average font like Tahoma. The average character width is 8.69px including normal letter spacing.

Conclusion:
Word spacing should not change. Letter spacing should change from 0.12em to 0.045em.
Wayne

Received on Friday, 9 June 2017 17:18:01 UTC