Thursday, April 18, 2013

Spacing in Twitter (a small victory)

I tweeted this back in January to twitter's feature suggestions account:
Wide Spacer @WideSpacer 05 Jan 13
@features Please change the CSS for tweet text: set white-space to pre-wrap. With only 140 chars, if people use two spaces they mean it.
(The short answer is that sometime recently they have done exactly this.)

There was more going on than just the wishful thinking.  In fact many twitter clients, particularly those widely used on mobile platforms, already preserved both the spaces and the newlines in tweets.  So users of those clients could "format" their tweets with extra spaces and new-lines, and often did.  But on twitter.com, these formatting efforts were lost to HTML's default behavior of treating all new-lines as blank spaces, and of combining multiple spaces into a single space.

HTML doesn't do this because it hates spaces, or because it has taken sides in the debate on sentence spacing.  HTML was originally based on SGML, a markup language for adding meta information (like formatting instructions) to plain text.  In SGML's view of the world, spaces are not content.  They simply server to separate words from each other.  One space does this just as well as ten spaces.  If there's any formatting to be done, that should be in a tag as meta information.

Of course HTML has never added any explicit formatting capability for sentence spacing (although there are plenty of workarounds, most of them cumbersome).  But HTML has always had a <pre> tag, which means the contents of the tag are pre-formatted, and no formatting should be done; the original spacing and new-lines should be displayed.

As the web progressed, and CSS became the standard way of doing things, a CSS property called "white-space" was added.  This property describes how spaces and new-lines should be interpreted.  The possible settings include "normal", which means the way HTML has always done things, and "pre" which means the text should behave just as it would inside a <pre> section.  It also includes the setting "pre-wrap" which is alot like "pre" except that lines are wrapped both as needed, and also on new-line characters.

The pre-wrap setting is perfect for twitter, where it will preserve the user's original spacing as much as possible, but still wrap lines as needed to fit into the available space.

(Also note that there's an obvious missing feature from "white-space": there is no setting which honors multiple spaces, but ignores new-lines.  This would be handy for people who have been writing HTML in some traditional editors where long lines that wrapped are inconvenient, e.g. the traditional UNIX "vi" visual editor.  They may want to preserve spacing but not the new-lines.)

A few weeks ago I began noticing that tweets on twitter.com were appearing showing user formatting.  A quick look showed that they had indeed changed their white-space property for tweet text to "pre-wrap".  So now tweeters can add their wide spacing and it will actually display properly for the majority of twitter users.

This also means the next time there's a twitter debate about sentence spacing, the monospacers won't be able to say "yeah but why doesn't your tweet have wide sentence spacing?"  Because now it will.

Thank you Twitter!




Monday, March 18, 2013

Type Was Made to Read

"Type," said the Foreman, "was made to read,
And that is a maxim it's well to heed,
For the printer frequently gets a start
With a Craze for 'beauty,' a bug for 'art,'
Which holds him fast in a fearful gripe
And keeps him trying mad stunts with type,
With seventeen fonts and seventy styles
And borders by thousands and rules by miles.

"Type," said the Foreman, "was made to read,
But the printer, oftentimes, in his greed
For novel features and 'class' and 'tone,'
Forgets this fact he has always known
And sends out work that is fine to see
And 'smart' and 'natty' as it can be,
A job with a swagger and high-bred look,
But hard to read as a Chinese book!

"Type," said the Foreman, "was made to read,
And that should serve as the printer's creed,
For work on the Linotype machine
Or hand-set jobs should be clear and clean,
Not ornamental, obscure, bizarre,
Composed of all of the fonts there are,
But simple, legible, quiet, plain,
A joy alike to the eye and brain!

For art in printing is not the way
Of wild extravagance, weird display,
But rather the unobtrusive thrall
Of type that gives you no shock at all,
But draws your eyes to the page with zest
And holds your mind to the thought expressed;
We must keep ourselves to this simple creed,
Type was made and is meant to READ


Berton Braley, Linotype Bulletin, March 1915

Friday, March 15, 2013

The Cost of Printing Errors on the Linotype

My central hypothesis on the demise of sentence spacing is that the Linotype was the major factor, due to the excessive cost of correcting errors (especially spacing errors), and because the apparent drop in quality with the Linotype could be alleviated with closer spacing.  My blog post "A River runs Through It" covers some of the quality issues.

The problem of expense comes into play in a few different ways, but the most significant was in error corrections, where you couldn't simply change out a letter or two.  You'd have to recreate the entire line from scratch in the best of cases.  In the worst cases, your correction affects spacing enough that the change affects other lines, and you have to recreate several lines from scratch, all for what might simply be the insertion of an extra space.

Anyway, I've come across a discussion of the Merganthaler Linotype machine in Hearings Before Subcommittee of House Committee of Appropriations (for an 1898 appropriations bill), which covers both the expense of errors and and the problems with quality.

Statement of Mr. Th. E. Benedict, Public Printer
  [...]
The Chairman. Let me ask you.  If you avail yourself of modern methods of composition, take for instance, the Merganthaler process?
Mr. Benedict. I can say this: I believe that the working force of the office, if the question were put to them, would say the present Public Printer has largerly added labor-saving machinery to the Goverment Printing Office.
Mr. Sayers. You have not gone to the full length that private institutions have done in the matter of labor saving machinery, have you?
Mr. Benedict. I have gone to the length I was able.  I have not been remiss in putting improved machines in the Government Printing Office which I thought would be useful and to the limit funds for such were available.
Mr. Sayers. I am not saying you have not done your full duty, but I am simply comparing the conditions of the Printing Office with private institutions?
Mr. Benedict. If it was a question as to whether the Merganthaler or Linotype was profitable to be used in the Government Printing Office, I have an opinion; but perhaps you do not care anything about that.
Mr. Stone. Do you use any of these machines?
Mr. Benedict. No; but I am very familiar with the machines.  I know there is a great humbug about the matter of profit of these machines as operated generally.  You need not put this down—I know the conditions under which they can be made profitable, and I know the conditions in many offices where they are unprofitable, and those are the conditions which would operate in the Government Printing Offices.  Outside of the Congressional Record we receive scarcely any copy which, when in type pages, is ready for the press.  Our page proofs are edited and reedited by you and other editors, and we reset the matter again, and when you have to reset a whole line or a page to correct an error of a letter or a word of the compositor or author, the work is very expensive, and such corrections with the Linotype machine are necessary, as it sets type on a slug, and to take one letter out you have to set every letter of the slug line, and to insert a long word or a few words you have to run over the whole sentence.
    If you have perfect copy, the Linotype machine is profitable, and if you do not have good copy it is not.  Under these conditions the typographic appearance of every daily newspaper in the country where such machines are used has been so lowered that they have ceased to be respected by persons of taste, and the typographical errors and lack of typographical taste are due to the use of the Linotype machine.
Mr. Sayers. Of course you could not use that for the Printing Office of the Government?
Mr. Benedict. I guarantee that in the average daily newspaper set by the Linotype machine you find from 10 to 20 errors to every one you find in the Record, and you would lose almost entirely the typographical style which makes the Record the most beautiful and perfect daily publicaion of the world, while produced under greater difficulties than are known in other daily offices.

Tell us how you really feel Mr. Benedict.

Granted this is just one point of view, it's still an interesting insider's view of the Linotype and its real world issues.  There are plenty of sources out there that more directly describe the problems with the Linotype (in particular the rivers) as well as the cost of error correction.  I just liked this source for its directness.

Friday, December 28, 2012

One Space is Just Wrong

"The space between sentences is a an aesthetic and functional choice, not a law."

That's the tag line on my Twitter account.  It's been my motto as I approach this issue.  It's my attempt to be fair and even-handed, and to avoid being preachy.  However as I learn more about this issue, I'm beginning to realize that it might be wrong.  Or at least incomplete.

When it comes to typography, I stand by it.  If you have the luxury of choosing your sentence spacing, by all means, choose whatever sentence spacing you find appropriate for your composition.  Wide spacing, or word spacing, a little wide or very wide, or even narrower than word spacing if you like.

But what I've learned is there is a very clear right answer on how many times to hit the space bar after a full stop.

We must use two spaces after a full stop.

It's odd that I'd say this, considering such brash and pedantic statements from the monospacers like Farhad Manjoo are what set me down this obsessive compulsive trail.  But unlike their reasons, which are clearly wrong and easily dismantled, I have a reason that is practical, and actually important.

First, let me be completely clear.  The printed space between sentences in a published work is not what I am talking about here.  I am only talking about the number of times you should hit the space bar after a sentence.  These things are not the same today, although they used to be.  On a typewriter they were the same thing.  On a Merganthaler Linotype hot metal typesetting machine, they were the same thing (although it was two different kinds of spaces).  But on computers, they are not. 

Computers can format your sentences however you like.  There's just one catch: computers must first know what a sentence is.

Wait, isn't that an easy one?  Actually, it is not.  The problem is that the meaning of a period is ambiguous.  It's not just a full stop.  It's also used to mark abbreviations.  And for initials.  And as a decimal point.  And after enumerations.  And as part of an ellipsis.  These things don't trip up human beings that often.  But for computers, deciding if that period is a full stop defies all attempts at a solution.  And there have been scores of scholarly papers on this very subject of sentence boundaries.  Let's look at a worst case scenario:
"Who's going?" "You and I. Smith is going too."
Is that "You and I." followed by "Smith is going too."?  Or is that referring to someone named "I. Smith"?  With no context, there's no way for even a human being to decide.  So for a complete solution we need a computer program that is capable of understanding context.  This is way beyond our current state of the art in computer software.

But that's just one example, right?  I mean, even people aren't perfect, so there must be an approach that's close enough?  Well, that depends on what you mean.  I've seem algorithms that claim to be successful 95% of the time or even 98% of the time.  Let's think about that - 98% means that your average article longer than 50 sentences is likely to have an ambiguous sentence boundary in it that the computer can't figure out.

So why do we care if a computer can parse what we say?  One practical reason is for machine translation.  Machines that are trying to translate what you are comm­unic­ating can do a much better job if they know what a sentence is.  There's also text-to-speech for the visually impaired (and others), which requires a knowledge of sentence boundaries to yield realistic inflection.  And of course it's useful for those who want wider sentence spacing.  But the larger reason is simply that we are trying to comm­uni­cate, and if a computer is going to mess it up, theres a chance a person might blow it too.

This whole problem could be solved if we only had an unambiguous full stop, rather than the confusing period.  But actually we do, or at least, we did.  For hundreds of years, it wasn't just professional printers that added extra space after sentences.  When students learned basic penmanship in school, they were also taught to add extra space between sentences.  There were no typewriters or computers.  All person-to-person comm­unic­ations before the typewriter were handwritten, and people penned their letters with extra space between sentences.

In other words, the unambiguous full stop is simply a period combined with extra space.  But we are losing this standard piece of punctuation.  We are losing it to technology.  We lost it to the poor formatting capabilities of the Linotype, and the expense of corrections.  We lost it to the general desire for faster and cheaper printing, and even the slight savings in paper.  We lost it to early web design standards that ignored the issue, because HTML was never meant to be so heavily typographic, and the designers didn't want to bother.

But that's all in the past.  Right now, we are losing it to a group of people who have declared war on the extra space.

No, I don't mean typographers.  You do often see claims that typographers everywhere have declared extra spacing to be wrong.  What you don't see is hoards of actual typographers saying that.  Sure you see some here and there.  But there's also quite a few typographers who don't think it's such a hard and fast rule.  And even a few who long for the days of wider sentence spacing.  Despite any claims, typographers are not the driving force in this war.

The real leaders of the crusade are the editors.  If you see someone complaining on line about this issue, by far the best guess is that they are an editor of some sort, and they are complaining about editing out extra spaces.  It's unfortunate that no one has bothered to tell them of the wonders of search-and-replace.  Or of requesting new features in their software if it doesn't do what they need.  Or of buying someone else's software.  All of these choices would alleviate the editor's pain without destroying a basic piece of punctuation.  But instead of fixing their software, they have chosen to bend the habits of the world to their will.

It's more than just unfortunate.  It's tragic.  Editors are entrusted with preserving our comm­unic­ations, with standardizing them.  And yet it is editors who, simply out of plain laziness or technological ignorance, are willing to cast aside the unambiguous full stop like it was nothing more than yesterday's newspaper, or this morning's toilet paper.

In print, the unambiguous full stop disappeared thanks to cost-cutting.  Luckily, we had typewriters there to keep it alive, and teach us all the two-space habit.  But now we're in the computer age.  Much software has learned it's lesson from typewriters, and those two spaces are still used and recognized in a wide number of software packages.  But unfortunately there are other software packages that don't understand.  They learned their lessons from a print industry, without understanding that the loss of extra spacing was simply a cost-cutting strategy.

The irony is that today, the costs that lead to the demise of wide sentence spacing in the print industry no longer apply.  Thanks to the two-space typing habit it's a trivial change to allow the print industry to reliably typeset sentences according to any desired style.  And it's trivial for translation software, and text to speech software to reliably detect sentences and use that information.

Ultimately we write so that we can communicate our ideas clearly and effectively.  And our most basic unit of comm­unic­ation is the sentence.  Isn't it worth providing a reliable way of deciding what is and is not a sentence?

On the other hand, we could all abandon that extra space and just leave it up to chance.  Because think of the all time those editors can save!

Wednesday, December 26, 2012

Dynamic Sentence Formatting for Blogger

Prior to this blog, I wrote an article on formatting sentences with HTML and CSS.  And that article itself has been formatted so that the viewer can dynamically control the sentence spacing.

Now I've made my first pass at doing the same thing in Blogger.  At the right, you should see controls for adjusting the size of the added sentence spacing.  And in my very limited testing, it works for me on Safari 5.

In a perfect world, which I'm working towards, but we're still not there, the editing process would automatically mark each sentence in it's own span, which is what I did by hand in that older article.  But I haven't had time to rewrite Blogger's post editor yet.  What I've done instead is relied on my so-called typewriter habit, and Blogger's idiosyncratic method of preserving extra spaces by trading them for non-breaking space entities ("&nbsp;").

I use javascript at page load time to look for sequences of period-space-&nbsp, and replace them with a span that wraps the space between sentences.  Ideally I'd mark each sentence, but this was a bit easier to code.  Then I modify the word-spacing just for those spans.  The controller at the right finds the appropriate value in the style sheet and modifies it.

It's not perfect.  The lines don't seem to re-wrap based on this change, and when the spacing is changed too much you'll end up with the right margin broken.  I think this could be a Safari or WebKit bug, because my original code in that older article would reflow as needed, but in that case I wasn't using justified text [update: reflow does work in Firefox][update 2: working now in Safari, see comments].  Another problem is that it could miss some sentences if you haven't been careful about where you place your tags at sentence boundaries: if there's a tag inserted between the space and the nbsp, it won't account for that (it can handle a single tag between the period and the space though).  An additional problem is that if you had for example some alt text of an image that had a period and a space and an nbsp, it would probably muck up your alt text.  But neither of the last two problems is at all common in practice (and this should still be considered an early attempt).

This method could easily be extended to any web pages besides blogger.  If you have a two space habit, the script could be modified to look for period-space-space instead of period-space-&nbsp.  This works because even though HTML doesn't preserve your spaces for display purposes, the browser does seem to preserve them internally.

In fact you could extend this further and attempt to modify any web content, regardless of the author's typing habits, and look for sentence boundaries with any period and space.  Unfortunately as I've discussed elsewhere, this is prone to errors, and you'd have to do significantly more checking (for abbreviations, initials, etc.) just to make it close to accurate.  Only full grammar parsing would do a truly acceptable job.

Let me also note that I originally tried to implement this as a Google gadget, and while that would simplify the process of others adding this feature to their blogs, I hit a little snag that the gadgets are remotely loaded, and the browsers frown upon javascript from one domain monkeying around with the DOM for parts of the document that come from some other domain.  The only way I found around this was to add the HTML directly.  If there's another way to accomplish this please let me know.

So how can you add this to your Blogger page too?

First, you have to add a bit of CSS.  Go to your blog's dashboard, select "Template" and then "Customize".  Then "Advanced", and in the list that appears to the right, scroll down to the bottom and select "Add CSS".  In the window that you get add the following:
.sntc_space { word-spacing: 0.25em; }
And then click "Apply to Blog". Next, you have to add the HTML-based gadget. Go back to the Blogger dashboard, and click layout. Click "Add a gadget" in the spot where you want the control to appear. From the list of gadgets select the one called "HTML/Javascript". Set the title to whatever text you want above your control (e.g. "My blog's sentence spacing"), and then past the following into the content:


<script>
var className='post-body';
var oldbox=null;
function init_sentence_spacing() {
  oldbox=document.getElementById('quarter_em_sentence')
  var spaced_elements;
  if (document.getElementsByClassName == undefined) {
    spaced_elements = [];
    var allElements = document.getElementsByTagName("*");
    var element;
    for (var i = 0; (element = allElements[i]) != null; i++) {
      var elementClass = element.className;
      if (elementClass && elementClass.indexOf(className) != -1 && hasClassName.test(elementClass))
      spaced_Elements.push(element);
    }
  } else {
    spaced_elements = document.getElementsByClassName(className);
  }
  var elem;
  for (var i=0; (elem = spaced_elements[i]) != null; i++) {
    var foo=elem.innerHTML;
    foo=foo.replace(/([.!?][")]*) &nbsp;([A-Z<("])/g,"$1<span class=sntc_space> </span>$2");
    foo=foo.replace(/([.!?][")]*)(<\/[^<>]*>) &nbsp;([A-Z<("])/g,"$1$2<span class=sntc_space> </span>$3");
    elem.innerHTML=foo;
  }
}
function change_sentence_spacing(value,box) {
  var CSSRules
  if (oldbox) {
    oldbox.style.backgroundColor="white";
  }
  box.style.backgroundColor="#40ff40";
  oldbox=box;
  if (document.all) {
    CSSRules='rules';
  } else if (document.getElementById) {
    CSSRules='cssRules';
  }
  for (var j=0; j<document.styleSheets.length; ++j) {
    if (document.styleSheets[j].href==null) {
      for (var i=0; i<document.styleSheets[j][CSSRules].length; ++i) {
        if (document.styleSheets[j][CSSRules][i].selectorText == 'span.sntc_space') {
          document.styleSheets[j][CSSRules][i].style['wordSpacing'] = value;
        }
      }
    }
  }
}
if(window.addEventListener) {
  window.addEventListener('load', init_sentence_spacing, false);
} else {
  window.attachEvent('onload', init_sentence_spacing);
}
</script>

<table rules=all cellpadding=2px>
<tr>
<td onclick="change_sentence_spacing('0em',this);">None</td>
<td onclick="change_sentence_spacing('0.125em',this);">Tiny</td>
<td id=quarter_em_sentence bgcolor="#40ff40" onclick="change_sentence_spacing('0.25em',this);">Small</td>
<td onclick="change_sentence_spacing('0.50em',this);">Medium</td>
<td onclick="change_sentence_spacing('0.75em',this);">Large</td>
<td onclick="change_sentence_spacing('1.25em',this);">Huge</td>
</tr>
</table>


Totally and perfectly simple, right?  Save the gadget contents and you're all set.  Now just press the space bar twice between sentences in the Blogger post editor and your readers will be able to control how they view your sentence formatting.

Note that with this setup, the default extra space is a quarter em (very conservative), and that this corresponds to the "Small" button in the control.  If you want to change this default, pick a different value for ".sntc_space" in the CSS, and move the "id=quarter_em_sentence" piece to the correct table element for the value you've made your default (but don't rename that id unless you also fix the code that looks for it; I guess that was a poor choice to name that id but I don't feel like correcting it at the moment).  You can also change the values or labels in the table to anything you'd like.

Friday, December 14, 2012

19th Century Typewriting and Handwriting Rules

I've done a bit of searching of old books for spacing rules used on typewriters.  There's not much out there.  In typesetting, sources are consistent in either recom­mending an em-quadrat between sentences, or making no mention of sentence spacing at all.  There was one reference I've found (and can't find in my notes on, grrr), which had the recom­men­dation for spacing that you should simply pick up any book of the day and you could learn everything you need to know by looking at it.  I've also found a handwriting book from 1873 (Analysis of Letter Writing, by Calvin Townsend) which describes desired spacing in handwriting on page 19:
  The rule is, to leave space sufficient to write the minimum m between the words, of the same size of that letter used in the body of your writing.  [...]
  After an interrogation or exclamation point, and following the period, space enough should be left to write a double m.
Note too the date, 1873 was the same year the first 1000 typewriters in the world went into production, so this wide sentence spacing can (once again) not be blamed on typewriters.

But for the most part, in penmanship manuals and especially in typewriting manuals I'm finding this topic simply gets no mention at all.  My belief is that wide spacing was such an ingrained habit from the time people learned to write, that it was simply automatic.

So I was happy to find this tidbit from The Phonographic Magazine, Volume 12 (1898), By Jerome Bird Howard, on pages 206-207:
TYPEWRITER SPACING AFTER PUNCTUATION MARKS.
  Are there any stated rules for spacing after punctuation marks in typewriting?  I notice that some writers put a space after a comma, and two spaces after a period, while others do not put any extra space after a comma and only one space after a period.  Which is correct?
  Answer.—It is our observation that in the best specimens of typewritten work there is always a space following a comma, and two spaces following a period.
I like this because the wide sentence spacing is assumed in either choice without any analysis at all.  But also because it demonstrates that if anything, people felt that typewriter spacing might need to be less than traditional typeset spacing, rather than more.

Thursday, December 13, 2012

Everything You Think You Know About Sentence Spacing is Wrong

Bashing the use of additional space between sentences has become a popular past-time.  There's been an unending supply of articles decrying the use of extra space between sentences.  You might think this means a very large body of evidence against wide sentence spacing, but in reality, all of these articles are just repeating and perpetuating the same myths, even though they don't stand up to the slightest scrutiny.

So let's take a look at the truth behind these popular myths.
Two spaces were introduced with the typewriter because all the gaps in monospaced fonts make single spaces unclear or aesthetically bad.  Proportional fonts don't need it.
This is probably the most popular argument, and yet it is completely incorrect.  First, wide sentence spacing was standard practice for hundreds of years before typewriters were invented.  The first newspapers printed in America used it.  It was used not only in printing but was even standard in handwriting (the Declaration of Independence was written that way).  During this period of course, proportional fonts were the standard; monospaced fonts were virtually unheard of before the typewriter.  When the typewriter came along, people put extra space between sentences because that's what they were already doing everywhere else.

The trend towards the same spacing for words and sentences didn't take place in typesetting until sixty years after the invention of the typewriter.  Clearly, blaming wide sentence spacing on the typewriter is incorrect.  The best one can do is blame the typewriter for preserving what was abandoned in the printing industry.

Second, yes monospaced fonts look airy and could even be described as having gaps.  But the actual spaces are enormous too.  Compared to proportional fonts, spaces see the biggest increase in size of any character.  And the period character in a monospaced font is just as wide, creating a lot of visual space when used with just a single space.  Because of the air over and around the period, and the very wide space, the only logical argument someone might make about this is the opposite of the myth: typewriter fonts had less need for the extra space compared to proportional fonts.
The Chicago Manual of Style says so.
This manual, and most others that people reference are industry standards.  They aren't lawbooks or grammar rules, or even really "Miss Manners" guides.  They are a reference for people who work for that particular company, on how their employer wants them to perform their duties.  The only people that must follow the Chicago Manual of Style are people who work for the University of Chicago Press.

Of course, anyone is free to follow them, but keep in mind that the choices made by some particular publisher might have as much or more to do with streamlining printing costs as they do with achieving the height of aesthetics or the most ideal reading experience.

Personally, I've never found cost-cutting or conforming with big business to be very stylish choices.
HTML eliminates extra spaces automatically.
This has nothing to do with typography, and everything to do with how the web was designed and how it grew.  HTML was built on top of SGML, and that's where it's inherited it's syntax of angle-bracketed <tags>.  The way SGML works, the tags describe any meta-information about a document, which includes layout information.  The stuff between the tags is the actual content.  And in the content, a space's only purpose is to separate words from each other.  One space or ten do that job exactly the smae, and this is why spaces in HTML are collapsed.

Sentence spacing (or any other kind of spacing for that matter) is not content, it is layout.  So why can't you adjust the layout of sentence spacing?  In early conceptions of the World Wide Web, HTML was meant as a very simple document type that could be used to access all other document types.  Even in the beginning there was resistance to adding new tags or behaviors.  There was a version of the XMosaic web browser which did in fact try to detect sentences based on periods, and add extra space between them.  However it was deemed to be unreliable, and unneeded.  This was not an effort to conform to typography.  In fact one argument for no extra space was that "writers of HTML really shouldn't need to know the fineries of typography" and quipped that letting HTML do that would be as silly as letting it do kerning.  Of course that was a long time ago, and now modern HTML and CSS standards include some options for pair kerning and range kerning.

At present, I'm hoping to introduce new standards into HTML to improve it's ability to provide convenient CSS-controlled sentence spacing.
Modern computer fonts adjust their spacing automatically.
Sorry there is nothing magical about fonts.  Much like the typewriter argument, this one is pure fabrication.  The only thing I can think of is that this refers to the pair-kerning that is built into many modern computer fonts.  This tells the font that when certain letters are next to each other to adjust their spacing.  This was commonly done because some letters look more airy next to each other ("eo") and others look more crowded ("dl").

However it is absolutely not common practice for fonts to set pair kerning for a period and a space.  Nor should they.  A period can be used in an abbreviation followed by a space, and we definitely wouldn't want to confuse this spacing with sentence spacing.  Also, some people choose to use spaces between initials, e.g. "A. J. Foyt", and while using a space there is an arguable practice, I doubt anyone would argue that those spaces need to be wider.

Aside from the fonts, some software packages might automatically detect and format sentences.  This is not typically on by default in modern word processors, probably because it's hard for computers to get it right by themselves.  Consider this answer to the question "who's going?": "You and I. J. Smith will also go."  Is that one sentence or two?  In fact, if software needs to detect sentences for whatever reason, it will have a much easier time accomplishing this if users are in the habit of using two spaces between sentences.
Wide sentence spacing creates rivers of whitespace in the text.
A "river" appears when spaces on a few lines in a row all line up and create a visual effect that draws the eye.  This has always been considered unsightly, but did not become a hot topic of conversation in printing until the invention of hot-metal typesetting.  In hand-setting, typesetters could adjust the spacing in lines such that spaces didn't line up as much.  In lines that were very "open" (didn't have much text) it was common practice to add spaces between letters in a word, which reduced the gaps between words, and hence reduced problems with rivers.

The most popular typesetting machines after the invention of hot-metal typesetting were Linotype machines.  Letter spacing on these machines was impractical.  Because of this, the Linotype was very prone to rivers.  It should be no surprise then that Linotype pushed the world towards narrower fonts, narrower word spacing, and eliminating extra space between sentences, because all of these adjustments helped to reduce the appearance of the Linotype's inevitable rivers.
Two spaces, or one?
 Almost every article out there focuses on "how many" spaces there should be between sentences.  This is the wrong issue entirely.  Typographically, we should be talking about "how much" space we use.  "How many" spaces is irrelevant in typography, just as it was irrelevant in the pre-typewriter era, where the same physical gap in text might be made from several different combinations of physical spaces and quads.

The only place where the question of "how many" is relevant is during the actual act of typing, and this is where the only clear argument is to press that space bar twice.  Regardless of your aesthetic choices on how much space should go between sentences, the typewriter's convention is incredibly useful for helping computers figure out where those sentences are.

Admittedly there's plenty of software that doesn't provide good handling for sentences, and simply sticks in two actual space characters with no way to override it.  But if your software doesn't do what it should, demand that the software be changed.  Don't demand that everyone in the world adjust their behavior to conform to your broken software.