Jeffrey Zeldman's Blog, page 2

May 28, 2025

May 15, 2025

My Glamorous Life: broken by design.

Debt brought on by large, unexpected expenses caused me to lose access to my credit card. I’d put a close friend’s storage unit in my name and on my credit card while they relocated and job-hunted. So my payments on my friend’s behalf were no longer going through, and the storage company began texting me about the missed payments.

Sounds straightforward, ordinary, and boring. Turned out not to be.

Meanwhile, my friend—after moving house twice—has landed a terrific job, and is beginning to dig themselves out of their debt. But they can’t pay the full amount of their storage fee yet. Or transfer the unit from my name to theirs.

They tried to make a partial payment by telephone, but the company’s “partial payment” line didn’t work.

It didn’t work in a highly specific way.

Specifically, it let them waste ten minutes entering data by hitting their phone’s keypad and typing “1” after each step to confirm the correct completion of that step. Then it told them that the payment had not gone through—asked them to “wait to speak to a manager”—and then immediately disconnected them.

Every time they tried, they got to that stage and were immediately disconnected. With all the goodwill in the world, my friend could not pay their bill.

“Nothing works” is working as expected.

I had enough cash in the bank to make a full payment on my friend’s behalf; and since the unit was in my name anyway, I followed the company’s text message instructions—sent to me personally—to pay the full bill online on their behalf and set up automated payments for future bills. They’d pay me back when they could. Eventually we’d transfer ownership. Such was my naive hope.

The website let me enter my data step by step, including “new card” data. I removed the defunct credit card info and replaced it with my debit card data. Unlike a credit card, my debit card never lets me spend more money than I have in the bank. That is a good thing when you’re in debt. My debit card is with one of the largest banks in the world. I’ve had the account for over 30 years. In short, it’s a stable account with a long history.

The website allowed me to enter my data, a process that took about five minutes.

When I hit “Send,” the website announced that the payment had failed to go through because the bill was past due.

The system is designed to block payments after first encouraging you to try sending them.

There I am, working to send them my money. And their system refuses. Their system already knows who I am. It told me my name, my storage unit number, and the amount due. It knew me. It knew what I owed. It was ostensibly built to take my money. It is a special phone number with a special automated system designed to take payments from known customers. And it failed every time I tried to pay.

Two design choices are worth noting.

The system only accepts timely payments, not late ones.The system deliberately doesn’t tell you that it won’t accept your payment. It encourages you to waste time trying. That’s key.

Is the software poorly designed? Was their QA process less than perfect? Did some sadist deliberately set up the system to punish folks who are struggling?

The answer, of course, is yes. To all three questions.

I really tried.

I tried three times, even switching options. Like, the first time, I said NOT to use my debit card number to automatically pay my friend’s bills in the future. The next time, I said, OKAY, charge me forever. No matter what choice I made, the result was always: “The payment did not go through because the amount is past due.”

The more you owe, the more you’re not allowed to pay. Who chose those defaults? Elon Musk?

So I called the phone number they’d given me. Again, it was an automated line set up explicitly for existing cutomers to pay their bills.

The number was smart. It had been waiting for my call. It recognized my phone number and told me the storage unit’s account number. It remembered my old credit card number—the one it knows doesn’t work. It asked me if I wanted to pay with the card that doesn’t work. It allowed me to say “No.” It allowed me to enter the account number and other data for my “new” card—the debit card. It allowed me to type “1” each time I completed a step. It asked me to confirm that everything I’d entered was correct. I did. It asked me to hit “1” one final time to confirm making the payment. I did.

The automated phone voice then informed me that the payment had not gone through, instructed me to “hold the line to speak to a manager,” and immediately disconnected me.

Same as what had happened to my friend when they tried to pay.

I tried three times. Each time, the same. Enter a bunch of data. Say yes over and over. Hit the phone equivalent of Send. Get the same error message. Followed immediately by disconnection. (Why try three times? Why not two? Why not eleven? That’s a subject for another day.)

When one window closes, so does another. And another.

Clearly the payment line—like the website—was not working. So I looked up the company’s website to find their main number. Not the smart automated number that knew who I was and what I owed. A dumb number, but with a human being at the other end.

I figured I’d call the front desk and say that I’m trying to pay a bill and have an account number, unit number, and dollar amount ready to share. If the human being on the other end told me to use the “bill payment number,” I’d explain that the bill payment number wasn’t working at the moment, and ask them to please please pretty please ever so kindly allow me to send them my payment.

So I called and got a busy signal.

Hung up. Waited ten minutes, called again.

Busy signal.

I’d now wasted at least 30 minutes and it was a work day, so I turned my attention back to my job, and away from nut-grindingly pointless exercises in absolute futility.

After about an hour, I tried phoning the company’s main number once again. You know what I got: a busy signal.

Here’s what I think: I think if you’re late, this company’s systems stop working. Not because they don’t want your money—they do. But because they want you to suffer for being late. Before they’ll take your money, they want you to crawl. At one time, there was probably a Japanese news group dedicated to this kind of kink. And the beauty part, for the perverted, is that the pain is pointless and nonconsensual.

They want you to try paying them via the payment website till your eyes cross. They want you to dial the “payment” phone number and jump through your own anus until you tire of being disconnected. They want you to weep. They want you to curse. They want you to try dialing the main number one thousand skrillion times before you get through to a human being. They want you to break down in tears when you finally hear a human voice. Like you’ve been rescued from a desert island and forgotten the beautiful sound of human speech.

There’s probably a German word for the relief you feel after banging your head against the obtuseness of American business systems until you finally get a fraction of what should have been provided to you immediately. Like when the internet finally comes back on after an unexplained blackout. Or when the New York landlord finally fixes the water heater so you can stop washing your private parts in icewater. Or when your trainer finally says, “Good job, let’s go stretch.”

Making a payment should not be routine. It should be a privilege, forged in fire and earned in blood.

Mind you: I don’t know that there actually will be a human being at the end of the phone line if I spend all day Saturday trying to reach one, but, at the moment, that’s my plan. Try and try and try and try and try again and keep trying world without end ad infinitum until at some blessed hour, some stranger takes my money.

And here’s the point of all this:

I encounter broken systems like this almost every week.

As a UX person, it makes me nuts. Also as a human being. It’s not right. It’s not fair. And we all put up with it.

Even if you’re lucky enough to have a good job, and even if you live in a progressive city like New York, our increasingly automated business systems are not our friend. In short:

They want to take your job and replace you with a machine that doesn’t work.

The post My Glamorous Life: broken by design. appeared first on Jeffrey Zeldman Presents.

 •  0 comments  •  flag
Share on Twitter
Published on May 15, 2025 12:10

May 10, 2025

A morning’s tale

Editor’s Note || Our New York apartment is home to three humans and three cats: Snow White, Mango, and young Jasper.

Woke to pee 2:00 am. Entered bathroom. Narrowly avoided slipping on a small lake of Snow White’s urine. Beheld a giant fat shit she’d left on the stone bath mat. It was like the cinema sequence, underscored by dissonant trumpets, where the heroine realizes she’s entered a chamber of horrors.

Instead of screaming, I turned on the faucet so Snow White, who had followed me into the bathroom, could hop onto the sink and drink from the tap. 

She’s 17, so by “hop” I mean climb at a moderate pace from floor to toilet seat to toilet tank to sink. (17 also explains why she has recently begun drinking exclusively from the bathroom taps, and excreting outside the litter box. And why I accept living with it. Acts of kindness are no guarantee of karmic reciprocity, but I can hope that when I’m Snow White’s equivalent age, someone will smilingly tolerate my dotty incontinence.)

By now, young Jasper had awoken and followed us in, so I spent a fast hand-waving minute guiding his sleek bullet-fast frame away from Snow White’s award winning turd, which had arrested his curiosity. 

After Jasper skedaddled, and while Snow White was still busy sipping from the sink, I sprayed and mopped the floor. 

Scooped up the giant shit. 

Wiped down the place where it had been. 

Washed my hands. 

Finally, peed. 

Washed my hands again. 

Looked to see if the floor was dry. Semi. Good enough. 

Laid a fresh dry giant wee wee pad on the damp but clean floor. Started to pick up the previously used wee wee pad, which one of the cats had folded into a sopping origami. As my fingers approached the wet paper, my skin somehow sensed how drenched it was. I left it where it lay. 

Snow White, having sipped her fill, climbed down from the sink and glided away. 

I left the damp origami to the side of the dry, newly laid wee wee pad and departed the chamber of secrets. 

Somehow it had become 3:00 am. I heard the kids chatting in their room, so sent them a friendly middle of the night text: “Hi, fart heads.” Then I wiped my feet and climbed back into bed. 

But sleep did not come. So I picked up my phone and pecked into it the words you’ve  just read. 

It is 3:52 am and I’m thinking I need to make an espresso and start the day. Good morning!

The post A morning’s tale appeared first on Jeffrey Zeldman Presents.

 •  0 comments  •  flag
Share on Twitter
Published on May 10, 2025 02:11

April 21, 2025

Writing in WordLand

This is a test. This is only a test. I’m using WordLand to write this post to my WordPress website. It’s a new, stripped-down writer’s tool for bloggers. Think of it as a frill-free writer’s frontend to the majesty of WordPress. The essential features (and some advanced ones, even) in a distraction-free, scribbler-friendly environment.

## An H2 subhead, my liege.

WordLand supports Markdown, I understand. It also supports direct bolding and links, of course. An overview of the features is available at the link I shared in the opening paragraph. For your convenience, here it is again: https://this.how/wordland/

WordLand doesn’t yet seem to include an affordance for ALT text. Either that, or I couldn’t find the affordance. Pretty likely that that will be corrected soon, as ALT text is a bottom-line basic necessity. (And, again, I may have simply overlooked an existing affordance.)

### An H3 subhead, your worships.

Hmm. More to come. WordLand is a creation of Dave Winer, one of the first bloggers, who also gave us RSS and lots more. Read more about Dave Winer on Wikipedia.

Okay, this was easy enough. For bloggers who mostly *write*, it’s a clean, distraction-free interface with strong basic features that lets you offload CMS duties to WordPress.

Noting that my subheads showed up as text with raw Markdown syntax also presenting as text. This was true even when I stopped writing *##* and replaced it with *h2*, for example. No doubt I’m doing something wrong, and that’s … okay.

I’ve updated this post six or seven times within the WordLand page itself, and the updates flowed seamlessly to the live site.

Update: Make that eight updates I’ve made to this post. 😉 Apparently the editor is WYSIWYG and stores the content in Markdown. I misunderstood the function of Markdown in the app (but I also didn’t carefully read every word of the support docs). Also, there’s supposedly built-in category support using a checkbox system. But I could not find the checkbox widget while using WordLand. That doesn’t mean there isn’t one—but if such an affordance does exist, it would benefit from being made more discoverable.

The post Writing in WordLand appeared first on Jeffrey Zeldman Presents.

 •  0 comments  •  flag
Share on Twitter
Published on April 21, 2025 05:14

April 20, 2025

Web typography: a refresher and history

Many designers still think in px first when creating baseline styles. But we know intellectually that various relative typography approaches are better suited to our medium in all its complexity. Better for accessibility. Better for avoiding bizarre typographic disasters linked to user preference settings, device limitations, and the unforeseen ways our overwrought styles can interact with one another.

As I contemplate a long-overdue redesign of my own site, it’s worth taking a refreshing dip into what we’ve learned about web typography over the past 20+ years. From the pages of (where else?) A List Apart:

Bojan Mihelac: “Power to the People: Relative Font Sizes” (2004)

An early and simple creative solution for text resizing that respects users’ choices and also gives them an additional option for resizing despite the limitations of some of the most popular browsers of the day. Presented for its historical importance, and not as a how-to for today. https://alistapart.com/article/relafont/

Lawrence Carvalho & Christian Heilmann: “Text-Resize Detection” (2006)

Detect your visitors’ initial font size setting, and find out when they increase or decrease the font size. With this knowledge, you can create a set of stylesheets that adapt your pages to the users’ chosen font sizes, preventing overlapping elements and other usability and design disasters. Presented for its historical importance as an insight into the complex dancing we’ve done in the past to ensure readability. https://alistapart.com/article/fontresizing/

Richard Rutter: “How to Size Text in CSS“ (2007)

Sizing text and line-height in ems, with a percentage specified on the body (and an optional caveat for Safari 2), provides accurate, resizable text across all browsers in common use today. An early move toward more responsive type and away from the accessibility problems created by setting text sizes in px in some browsers and devices. https://alistapart.com/article/howtosizetextincss/

Wilson Miner: Setting Type on the Web to a Baseline Grid

The main principle of the baseline grid is that the bottom of every line of text (the baseline) falls on a vertical grid set in even increments all the way down the page. The magical end result is that all the text on your page lines up across all the columns, creating a harmonious vertical rhythm. https://alistapart.com/article/settingtypeontheweb/

Tim Brown: “More Meaningful Typography” (2011)

Introduces modular scales, the golden ratio of readable typography. Delivers accessibility plus aesthetic beauty derived from the math underlying all of creation. https://alistapart.com/article/more-meaningful-typography/

Tim Brown: “What is Typesetting?” (2018)

“We must now practice a universal typography that strives to work for everyone. To start, we need to acknowledge that typography is multidimensionalrelative to each reader, and unequivocally optional.” https://alistapart.com/article/flexible-typesetting/

Keep going…

For more web design community wisdom and web typography history, see Typography & Web Fonts in A List Apart, for people who make websites.

And in the Comments below, please share your favorite resources for creating websites that look great and read beautifully, no matter what technical and human capabilities get thrown at them.

The post Web typography: a refresher and history appeared first on Jeffrey Zeldman Presents.

 •  0 comments  •  flag
Share on Twitter
Published on April 20, 2025 08:04

April 14, 2025

My father, Maurice Zeldman, and his ZGANNT software

My father, Maurice Zeldman, was a giant in the field of project management, though I suspect few in my world of web standards and design would recognize his name. Dad consulted for over 180 organizations and led seminars around the world. Project managers everywhere used his techniques to create realistic estimates and timelines that actually worked—a rare skill in any technical field, then and now.

Before founding EMZEE Associates (the name a play on his initials, M.Z.), Dad was Corporate Director of Technical Development for Rockwell International’s Industrial & Marine Divisions. He designed, built, and staffed their entire Engineering Development Center. Earlier in his career, he worked with Perkin Elmer developing an Atomic Absorption Spectrometer and with American Machine & Foundry as Chief Engineer of their Versatran Robot division. His robotics knowledge led to his book Robotics: What Every Engineer Should Know, published by CRC Press in 1984, followed by Keeping Technical Projects on Target, an AMA management briefing.

EMZEE Associates, Dad’s consulting and training company, specialized in project management and technology implementation. While I was designing websites and campaigning for web standards in the mid-90s, Dad was already running a successful business teaching Fortune 500 companies how to bring their complex technical projects in on time and under budget.

Then there was ZGANTT, his DOS-based project management software from the late 80s/early 90s. The name combined “Zeldman” with “Gantt chart—those horizontal bar charts showing project schedules that are still used today. While I was learning to code and finding my path, Dad had already created specialized software implementing his project management methodologies. This was during the first wave of specialized project management tools, before Microsoft Project took over the market.

Looking back, I realize my obsession with systems, standards, and improving how people work together didn’t come from nowhere. While I applied these principles to web design, Dad had been applying similar thinking to the complex world of project management decades earlier. His ZGANTT software and EMZEE Associates consultancy were direct expressions of his belief that the right methods, correctly implemented, could bring order and success to even the most complex technical challenges.

The post My father, Maurice Zeldman, and his ZGANNT software appeared first on Jeffrey Zeldman Presents.

1 like ·   •  0 comments  •  flag
Share on Twitter
Published on April 14, 2025 02:01

April 2, 2025

Forever

The first website my colleagues and I created was for “Batman Forever” (1995, d. Joel Schumacher), starring Val Kilmer. That website changed my life and career. I never saw “Top Gun,” but Val Kilmer made a brilliant Jim Morrison in Oliver Stone’s “The Doors.” Rest in peace.

The post Forever appeared first on Jeffrey Zeldman Presents.

 •  0 comments  •  flag
Share on Twitter
Published on April 02, 2025 04:27

April 1, 2025

Who turned off the juice?

Beloved reader, I spent 90 minutes on hold with Con Edison yesterday, getting my power turned back on after a billing contretemps.

The whole 90 minutes, my brain’s shrieking, “You’re having a panic attack!”

And maybe I was.

I could rattle off my diagnoses, but the simplest way to state it is that the ordinary setbacks of life fill me with dread. Always have. For over a decade, I self-medicated daily. And nightly. And afternoonly. In 1993, with help from others, I changed my life’s trajectory. But removing the booze didn’t make me “normal.” Step work healed some old wounds, but I’m still deeply anxious on my best days. And this was not shaping up to be one of them.

Look, if recovering from alcoholism during the Clinton years didn’t magically cure me of the rest of my problems, you can imagine what it feels like, being me during these dark days of fascist overreach. And, hey, maybe you don’t need to imagine. Maybe every blank unholy news day feels scary, wrong, and depressing to you, too. No need to apologize. Some days, just showing up takes courage.

Even the positive things, like the kick-ass job my daughter did applying to colleges, come with deluxe boxed sets of anxiety for folks like me. Then factor in an IRS audit, medical debt, and various friend and family traumas unrelated to the ongoing assault on decency.

Got all that?

Now, take away my electricity (and therefore my internet access), sit me down in the dark beside an iPhone with a low battery (Will it die before I finish this call? I can’t charge it, I have no electricity!), and tell me to get on the phone with the utility company that just shut off my power.

You may expect me to show up, but not to glide serenely through.

Look, I wasn’t abducted by ICE or fired without cause after years of dedicated civic service. But, for Mrs Zeldman’s little boy, loss of light and power and 90 minutes of antipatterns are grounds enough for a panic attack. (Besides, nobody tells you it will take 90 minutes to speak for 60 seconds to a human being who’ll take your debit card number over the phone. It might have taken longer. In another timeline, I might still be on hold.)

Yes, they have a “pay your bill online” website. No, it doesn’t work on my phone. Yes, it semi-works on my desktop. But a desktop needs electricity to run and to access the web. And they had cut off my electricity. It was call them or stay without power.

(Footnote: Later, when everything was resolved, I discovered that their website also doesn’t work. I use Google’s Auth app for two-factor ID, which signs me in. But when I try to see my bill, the Con Ed website asks me to sign in again, and rejects the two-factor ID. Instead it needs to send a different code to my cell phone. Why a different code? Why not the Auth code? I assume because the developers worked in siloes and were forbidden to speak to each other when creating the website. So I give it permission to send the code to my phone, and then it never sends it. I tried four times. And yes, they had my correct phone number on file. It also says, if it keeps failing to send a code to my phone (so they obviously know they have a problem), I can have it send a code to my email address instead. Except that there is no affordance to do so. It’s like if I said you could win a prize by touching this sentence. Heckuva UX, Brownie. It’s almost like they want you to have to call their overworked, underpaid, understaffed support staff. Because you can’t use their site. To rub it in, every five minutes the bot that thanks you for being a customer is interrupted by a bot that tells you to use their website to pay your bill online, which, as I just explained, you can’t. But I digress.)

As the Muzak ground on, during the better moments when I was able to focus on breathing, I pushed down the panic by telling myself I’d take a personal day as soon as the call ended and my lights came back on. Why take a personal day? I love my job. But I honestly didn’t think I’d be able to put in a day’s work after 5400 seconds of “your call is important to us, please stay on the line.” I reckoned I’d be wrecked.

But here’s the thing, and it’s why I bothered tell you this: the instant the lights came back on, I was fine. Utterly, totally, calmly, and completely.

More than that: when the modem connected and told the router the news, I pounced on my desk and got back to work, a happy cog. As if I hadn’t just spent 90 minutes in the stench of my own fear and gloom.

Am I becoming slightly more resilient with age?

The post Who turned off the juice? appeared first on Jeffrey Zeldman Presents.

 •  0 comments  •  flag
Share on Twitter
Published on April 01, 2025 12:19

March 27, 2025

This Years Model

There’s a new AI model that can render photorealistic people and products, including text and logos.

Geisha With Walkman is something I tried to draw 40 years ago, but my rendering skills were simply too poor. The Reve Image 1.0 preview allowed me to do it instantly this morning with a single, basic prompt.

P.S. I retro-updated the Walkman with an iPod to “modernize” the concept.

What will you create?

The post This Years Model appeared first on Jeffrey Zeldman Presents.

 •  0 comments  •  flag
Share on Twitter
Published on March 27, 2025 05:43

March 15, 2025

Your opt-innie wants to talk to your opt-outtie.

Here’s a fact: “Opt-in” is great for programs a platform controls, but meaningless when that platform has no control.

Take, for example, oh, I don’t know, let’s say AI companies scraping web content without your permission. The heart wants to make content scraping permissions “opt-in,” so people who post content online are protected by default.

Except we won’t be. Smaller, “good” AI companies may comply with “opt-out” notices; big ones surely won’t. Scrapers gonna scrape.

So why even bother with an “opt-out” setting? Because companies that continue to scrape opted-out content may find themselves on the losing end of major lawsuits.

Of course there’s no telling how these lawsuits will work out—not with ketamine supervillains and their GOP enablers willfully violating consumer, worker, and climate protection laws here in the benighted States of America. But even so, an opt-out notice is a red line, and most corporate legal teams are cautious and sober—at least during working hours.

An opt-out notice is *something.* It smells funky, but has a chance of working.

Of course opt-in feels better. It’s how we’d do things if we had control over third-party scrapers. But we don’t have that control.

Which makes opt-in for AI scraping a feel-good but basically performative gesture. And we don’t have time for those.

However pretty it might be to think otherwise, something imperfect that might work beats something pure that won’t. Don’t hate me ’cause I’m beautiful. I’m only here to tell you what we both know in our souls.

Your AI sponsor,

z

Photo by Tingey Injury Law Firm on Unsplash.

The post Your opt-innie wants to talk to your opt-outtie. appeared first on Jeffrey Zeldman Presents.

 •  0 comments  •  flag
Share on Twitter
Published on March 15, 2025 10:36