Posts from December 2012

Audio Waves

Published 11 years, 11 months past

As the year draws to a close, I have a few bits of podcast news to help fill the lonely hours between Christmas and New Year’s Eve.

The first is that Jen and I have done two more “The Web Behind” episodes since the last time I mentioned it, and they were both really fun.  Back on November 28th, I interviewed Tom Bruce of the Cornell Legal Information Institute about the very earliest days of the web, parallels between the arguments then and the arguments now, writing the first Windows web browser more or less from scratch, his invention of marquee, and the time he took a road trip to NCSA with Tim Berners-Lee to help bring cgi-bin to the web.

Then on December 20th, I got Tantek Çelik on the line to discuss how the web is like OpenDoc, why the web didn’t impress him the first time he saw it, the creation and interesting features of Internet Explorer 5 for Mac, how interviewing developers working in the field helped shape IE/Mac and thus the browsers that followed it, and how DOCTYPE switching came to be (and who thought it up).

On the other side of the microphone, I was honored to be the guest for the first episode of Besquare’s “12 Days of Podcasts”, which started on Boxing Day and continues on through the Feast of the Ephiphany.  We talked for just over half an hour about CSS past and future, conferences, how I got started on the web, and ways to land a job in the web industry.  As I publish this, they’re just three episodes into the series, so it’s not too late to jump in.

Happy listening, and a joyous New Year to you and yours!


Where to Avoid CSS Hyphenation

Published 12 years, 4 days past

Last week, I asked “Should You Hyphenate?”  This week, I’m going to assume that you decided to answer in the affirmative and talk about some good practices (I don’t know if they’re best practices just yet).  This post was actually triggered by a comment from Kevin Hamilton on last week’s post.  He said, in part:

You may want to exclude hyphenation on <code> tags within your blog. For both readability purposes (since many CSS tags already make heavy use of hyphens) and to avoid introducing some confusing/misleading references… Is it re-peating-linear-gradient? Or perhaps repeating-lin-ear-gradient?

He’s absolutely right, of course.  If you’re going to blog about technical topics, or even if you’re just writing a style sheet that you expect to release into the wild for use by anyone, there are some elements that you should avoid hyphenating.  And since hyphens is an inherited property, it isn’t sufficient to set it for a limited number of elements and assume you’re done.  You have to make sure you’ve turned it off for the elements that shouldn’t be hyphenated.

In my opinion, those elements are:

Yes, most of those are old and obscure and in some cases (massively) deprecated, but they’re all elements that could be hanging around on a web site and by their nature shouldn’t have their content hyphenated.  I mean, I would hope that a browser would recognize not to hyphenate an acronym or abbreviation element, but who knows?  Maybe ZOMGWTFBBQROFLMFAOCOPTER has enough word-like strings to qualify for hyphenation in some hyphenation dictionaries.  (Or not.)

“So what about pre?” you ask.  A very good question.  I rate that as a solid “maybe”.  For most uses of pre, the content won’t line-wrap anyway thanks to white-space: pre, so it’s a moot point.  However, if a pre has been set to white-space of pre-wrap, pre-line, or even normal, then hyphenation may well kick in.

At that point, the question is what kind of content the pre contains.  It apparently is no longer meant to be rigidly preformatted, as the element name would imply, so what is it?  If it’s a code block, there should already be a code element present within the pre, so suppressing hyphenation for code will be sufficient.  Ditto if it’s an example of user input (kbd), program output (samp), and so on.  This is why semantic markup matters.  It’s why, if you’ve been using it all along, you can make fine-grained choices here.

Of course, lots of people weren’t as forward-looking as you and anyway nobody’s perfect, so it’s probably a good idea to switch off hyphenation for pre, just in case the more semantic elements were left out.

There are similar questions to confront regarding q and blockquote.  If you’re quoting someone, almost certainly something that someone wrote, is it advisable to hyphenate that text when they didn’t?  I’m honestly not sure if it matters or not.  I’ve personally suppressed hyphenation in those cases, but I did that purely on instinct and I’d love to know what content and typography specialists think of that question.  (Be polite, please.  We’re all learning here.)

For the last interesting question, what about auto-linked URLs?  If we suppress hyphenation for all links, then that solves one problem to introduce another.  What I have noticed is that if you drag-select CSS-hyphenated text, the auto-generated hyphen(s) and line break(s) are ignored when you copy the text.  You just get the original.  That’s why I don’t think it’s really necessary to suppress hyphenation on the a element, though I’m willing to change my mind in the presence of new evidence.

Thus, at the moment, meyerweb’s base style sheet contains the following:

body {hyphens: auto;}
code, var, kbd, samp, tt, dir, listing, plaintext, xmp,
      abbr, acronym, blockquote, q {hyphens: none;}

I may adjust those rules over time, but that’s where I’ve landed.

Update 18 Dec 12: I should make it more clear that this post is intended to be a starting point, not the final word.  I’m not proposing that these are all the elements on which one should ever suppress hyphenation, full stop, end of discussion.  There may well be others, like form labels and textareas and text inputs and so forth, that should also be excluded.  (Though I kind of enjoy watching my text input get auto-hyphenated as I type.  It’s a little surreal.)  Hopefully, this post will get people thinking about exactly how authors should handle hyphenation if they do choose to put it in place, and eventually help us figure out some solid best practices.


Should You Hyphenate?

Published 12 years, 1 week past

A couple of weeks back, PPK posted about the sudden emergence of CSS hyphenation support in several browsers (which got picked up by WebMonkey, the lucky dog).  At the time, there was some confusion about whether a lang attribute it required to allow the hyphenation to happen — PPK said it did, but my testing indicated the opposite.

Well, it turned out that at the moment I did that test, I was running Firefox 16, and FF16 apparently honored the -moz-hyphens property with nary lang a attribute in sight.  We might ask how that’s supposed to work, since hyphenation dictionaries are language-dependent, but never mind: it did.  Firefox 17, on the other hand, requires a lang attribute value in order to apply hyphens (note the lack of prefix).

I haven’t gone running down the behavior of other browsers, because the upshot is this: if you want hyphenation to work in a future-friendly way, you need a lang attribute.  What older versions do will become of fading relevance.

All of which raises a fairly important question: should you enable hyphenation?

After all, hyphenation, I am told, was invented to increase the density of text and reduce the number of column inches needed in printed media, where paper can be expensive and space at a premium.  Hyphenation, in other words, was devised as a trick to let authors be a little bit more wordy.  (Also as a way to help reduce interword spacing in fully justified text.)

On the web, of course, we have no physical length constraints: The Web Ain’t Print.  We can run on as long as we like, limited only by our thesaurus, our RSI flare-ups, and the attention span of our readers.

But wait…that’s all true for the desktop web.  We have lovely big monitors and easily resizeable windows and zoomable text.  On mobile devices, however, the real estate is much more limited.  We still have infinite length, yes, but line lengths tend to be a lot shorter on iPhone or Android — particularly if you’ve given your mobile users a nicely readble font size.

Right after PPK’s article hit my aggregator, I turned on hyphenation here on meyerweb.  For desktop reading, at first it caught my eye a bit, but now I don’t see it at all.  Years and years of print reading has made it seem familiar.  Things would be just fine without the hyphens, of course.  But when reading pages on mobile, the hyphens feel useful.  They give me a little bit more reading for each “screenful”, and just feel comfortable.

Thus my recommendation of the moment: if you’re going to use CSS hyphenation, turn it on for mobile contexts.  For desktop — well, that’s a much murkier call.  It may well depend on your font family, layout, default language, and so on.  If you do turn them on, just make sure you have that lang attribute (I put mine on the html element) so your hyphens will persist.


This Is What It’s Like

Published 12 years, 2 weeks past

“So tell me — why do you deserve to be a parent?”

There are a lot of things that go through your head at that moment.  You think that maybe you should be offended, but then remember all the times you asked potential hires why you should give them the position.  You think about everything you’ve done and been through just to get to this point, the paperwork and training and classes and inspections and certifications, wondering how all that time and energy and expense could go unnoticed even as you realize it wasn’t.  It wasn’t overlooked.  She knows about all that; this is something else.  This is a character-divination exercise, just the latest in a very long series of hurdles, this one smaller than most, but a hurdle that has to be cleared all the same.

Because the basically cheerful, kindly woman sitting across the coffeeshop table from you holds your future in her hands.  She can decide that you are not fit to be a parent.  That power is hers.

You’ve gotten to know her over the previous months, through all the meetings and home inspections, and don’t think for an instant that she would turn you down capriciously or out of anything but a deep, genuine concern.  She’s not out to get you, or stop you, or hurt you.  She wants to help.  It’s up to you to not screw it up.

Which is why you pause for a moment to consider your answer, not because you haven’t thought about this exact question and your answer to it a thousand times before, but because you don’t want to screw this up.

This is what it’s like to adopt.


In that moment of pause, a lot of impressions flood in.  You don’t think about things, don’t remember events like a movie, but you feel all of their impressions on your life.

You recall deciding to stop using birth control, and the year of trying to get pregnant, using what is in effect the inverse rhythm method, and fittingly enough you got the opposite of the usual result.  You recall the fertility consultations, the blood draws and testing and the sample bottle that you need to fill no matter how sterile and cold and impersonal the little room might be, because as soon as you do then the doctor can take your issue and put it into a contraption that will be inserted right up into your wife so the sperm are deposited exactly where they have the best chance of meeting up with an egg and doing their thing.  With you holding her hand the whole time.  You recall the elective surgeries to correct discovered conditions that turn out, in the end, to have no positive effect.  You recall every one of the times the lab called to congratulate you on successful conception, and every one of the times the lab called a few days later to tell you that the pregnancy had failed, and how you learned that there are far, far more conceptions than there are pregnancies, even among those who aren’t undergoing fertility treatment.  You recall finding out that your only hope of pregnancy was IVF, and even that was a long shot, not to mention medically inadvisable when you looked at it dispassionately, as if such a thing were possible.

You recall deciding together that being pregnant was not nearly as important to you as being parents.

This is what it’s like to adopt.


You recall the Fire Marshall telling you that your house’s wiring needed to be upgraded and you needed to post floor-by-floor fire evacuation maps — in your compact, center-hall Colonial, only-one-staircase house — before he could sign off on your form, the form you needed to be signed so you could proceed.  You recall pressing your fingers into the fingerprint scanner so that the FBI could look into your background and declare your lack of criminality, so far as they knew, so you could proceed.

You recall sitting in the infant/child CPR class, looking at the other couples, some of them obviously well along in their pregnancies and others with no signs at all, you the only single person because your wife’s professional training already covers this stuff, wondering if any of them are hoping to adopt but not sure how to bring it up without looking like you’re trying to be a show-off or something.

You recall handing over more financial data than was required the last time you bought a house, which was the only time you bought a house, because you skipped the whole “starter home” thing and saved until you could buy the right house, the one with the huge front porch for summer dinner parties and the fireplace for winter evening cuddles and the bedrooms all about the same size so your someday children wouldn’t get into fights over who got stuck with the tiny room.  You also recall knowing that one day they would fight about it anyway, because someone would bust out a tape measure and complain that they’d been shorted by eight square feet, and you couldn’t wait for that day.

You recall the agony of filling out your medical/social profile, twenty draining pages of research and prejudgment and soul-searching, asking yourself what you thought you could or could not accept in a newborn baby and its parents and their parents and relatives and asking yourself who you were to judge another life, and then remembering that if you hoped to be parents you’d better be ready to judge all the time, not angrily, but fairly and compassionately and (if at all possible) wisely.  But you still had to finish this form, even though it felt like passing judgment on all the possibilities yet to be, because it had to be finished before you could proceed.

You recall wishing you could be angry about all the barriers and hurdles and hoops, all these things standing in the way of two people who wanted so much to raise a family, but understanding and accepting the reasons for all of them.  You analyze conceptual systems by trade, pull apart ideas and specifications to see how the pieces work, spend lots of time figuring out the why as well as the how, and that’s how you can see all too clearly why all these trials exist.  It is a grave responsibility to be a parent, and a graver responsibility for a third party to approve the transfer of a tiny, helpless, utterly dependent baby into a household of strangers.  If the state and its designated agents are to be party to that transfer, then they are responsible for doing all that they can to ensure that the transfer is made to good, decent people who can provide all the kinds of nourishment a new life needs.

And so all the things you ever thought potential parents should be tested on before they’re allowed to reproduce, as you shake your head at some obvious example of terrible, terrible parenting, forgetting for a moment that everyone has bad days and that you don’t know the first thing about those people and their lives and histories, all those things you’ve thought should be part of the Are You Fit To Be A Parent Test are all placed in front of you now, and twice as much more that had never occurred to you, all standing between you and the someday family you decided to create.

You recall them all, all the weight of all those challenges, and you look her in the eye and draw in your breath to answer.

This is what it’s like to adopt.


After the interview is over, you chat for a bit and then go your separate ways.  Soon you will finish up the last pieces of paperwork, send in your finished profile, and wait.

And wait.

And wait.

And wait.

And then one day, out of the blue, the phone rings and a frenzied chain of events are instantly set into motion, tying up loose ends and postponing appointments and deciding who to tell and making sure you have absolutely everything you need, because eighty hours after that phone call you are nestling a tiny, trusting, utterly exquisite baby to your chest and listening to it breathe, feeling its weight and warmth against you, your head still spinning from the uproar of the past few days and at the same time suddenly spinning the other direction because it hits you, with all the force of a newborn’s scent and all the piercing of a newborn’s cry, that you are holding your future in your hands.

This is what it’s like to adopt.

To be a parent.


Another Year Apart

Published 12 years, 2 weeks past

Just some quick updates regarding An Event Apart as we transition from our just-finished 2012 schedule to the upcoming 2013 schedule.

If you’re interested in joining us in 2013, you can check out the event nearest you…or maybe the event being held where you’ve always wanted to go!  If you have your eye on Atlanta, bear in mind that the Early Bird rate (which saves you $100) ends on Christmas Eve, so don’t wait too much longer.  And if you were waiting for a detailed schedule in either San Diego or Boston before deciding to register, well, your wait is over.  More schedules will be released as the shows get closer.

I don’t talk very much about An Event Apart, and I probably talk about it far less than I should.  I blame that on the show itself, partly.  Our last show of 2012, held at the opulent Palace Hotel in San Francisco, is now three weeks behind us and I’m still struck a little bit speechless by another year of fantastic attendees and speakers.  The fundamental nature of what we’ve created together really is overwhelming to me, in the best possible way.  Thank you, one and all, for making that possible.

To celebrate the year just past as well as the year to come, we’ve once again made a donation to CFY (formerly Computers For Youth) to help advance their efforts to bring digital literacy and access to impoverished elementary school students.  They’ve already seen great improvements in schools where they operate, and we’re thrilled to support their work.  If you’d like to support them as well, please do, or take a moment in all the end-of-year rush and lend some aid to the charity that speaks most clearly to you.


Browse the Archive