Jeffrey Zeldman's Blog
August 20, 2025
Too many meetings?
At Automattic, we know our time is finite and precious. Here are the questions we ask ourselves before agreeing to any meeting:
Am I investing time toward the things that are doing the most to help me grow and improve my ability to contribute?How much of my time is contributing to my team’s goals, and choosing the right ones?Is the work effective? Is it moving the needle? Can I describe it to a friend over dinner in a way that gets them excited? Can I blog about it?Are all my meetings so effective that you look forward to them? (Don’t laugh. It is possible.)“Sync Overload”—And How to Avoid It
The post Too many meetings? appeared first on Jeffrey Zeldman Presents.
August 5, 2025
Staying relevant
Or not.
My fears melted away. And in their place came acceptance. All this vast majesty of creation. It had to mean something. And then I meant something, too. Yes, smaller than the smallest, I meant something too. To God, there is no zero. I still exist. —
The Incredible Shrinking Man (1957)
AKA:
How I feel after not updating Designing With Web Standards or writing a new book since 2013.
AND:
And also how I feel now that there’s no longer a single, agreed-upon digital town square (and, further, now that the biggest one, where I once enjoyed a hefty following for some pixel pusher, has turned into a N*zi bar, where I no longer choose to spend time).
And since Covid killed the conference I co-founded, and I cut way back on travelling and giving conference talks and focused on paying off the debts we were left with.
And since financial reality forced us to kill our publishing company, too. So many nice things, all gone.
I had the world, or at least a wee piece of it, by the eyeballs, and, not entirely by my own choice, bit by bit, I let it go.
Kinda depressing, sure. But also, and mainly, pretty liberating.
I also learned something about people and friendship, and remembered something about the passing of all things.
The post Staying relevant appeared first on Jeffrey Zeldman Presents.
July 16, 2025
Project 2026
Starting today, file suits to prevent biased gerrymandering. Fight harder for the right to vote than the GOP has fought to suppress the votes of Americans MAGA dislikes. Craft a Democratic party platform focused on equal rights, equal justice, fair wages, and affordable housing. Win the Midterms, shifting the balance of power in congress. Upon gaining control of the House and Senate, do as many of the following as possible:
Restore and expand women’s rights.
Overturn laws and policies that were motivated by anti-Black or other racial animus. Take them one by one.
Restore queer and trans rights.
Dissolve ICE.
Immediately halt deportations, freeing all prisoners who were denied due process. Provide reparations to them and their families. Use ICE money to restore veterans services, children’s lunch programs, and other essential services that were cut to give billionaires an extra tax break.
Close and tear down Trump’s concentration camps. Educate the public about what happened in those camps, so it never happens again.
Restore the department of education and all other departments that were defunded during Trump’s moronic reign.
Take aggressive action to fight climate change. Lead on it.
Strongly and firmly support Ukraine with no strings attached.
Halt arms shipments to Israel while that country pursues its genocidal project in Gaza. Do whatever is possible to insist on peace and justice.
To the greatest extent possible, lay the groundwork for America to rejoin the family of nations after the Trump presidency.
Restore the “equal time” rules about TV news coverage.
Aggressively prosecute FOX “News” when it deliberately misleads the public.
Create affordable housing programs.
Revive FEMA and other essential services.
Restore Biden’s student loan forgiveness program.
Replace Trump’s hacks with professionals.
Arrest and aggressively prosecute Trump for all the crimes he has committed as president. Use a prosecutorial carrot and stick approach to encourage cooperation from White House staffers who can best roll over on their boss. Hold televised trials so Americans will see Trump and his minions testify to their crimes under oath.
Nullify the Supreme Court’s worst rulings, e.g. Donny’s crimes while president cannot be prosecuted; corporations are human beings; no limits on dark money, etc.
Expand the Supreme Court and impose term limits.
Impose term limits on congress itself.
Forbid senators and congresspeople from profiteering by buying and selling stocks based on inside knowledge. Arrest and prosecute as you would any other insider trader.
Increase the taxes billionaires pay and use those funds to pay down the national debt.
Do everything the legislative branch can do on its own to fix the economy, support small businesses, create jobs, and restore the rights and dignity of all Americans and make America a welcoming place for visitors from other lands.
Having built a strong Democratic party platform that most Americans can get behind, and proven that you mean it by doing as much of the above as you can achieve despite a hostile Executive branch, take back the presidency in 2028.
Immediately limit the power of the presidency so that no future would-be Caesar will seek that office again.
What have I omitted?
The post Project 2026 appeared first on Jeffrey Zeldman Presents.
July 11, 2025
The eye of God
My doctor sends me to Brooklyn for an abdominal aortic aneurysm screening. As instructed, I fast for six hours beforehand. I don’t even brush my teeth, for fear of swallowing toothpaste and screwing up the test. I wear a Covid-era face mask to avoid breathing on anyone.
The journey takes me to Boro Hall, a part of the city I’d not explored before. Judging by the style of pedestrian dress and the Hebrew lettering on some of the buildings, it appears to be an Orthodox Jewish neighborhood.
I enter an enormous, shabby waiting room—empty except for me, a receptionist, and a warehouse’s worth of old furniture. The couches are patched with duct tape. There are signs on the tables forbidding you to sit on them. The receptionist informs me that I can in fact drink water without spoiling the test results. She gives me a cup.
After some minutes, a technician comes for me. She’s soft-spoken and quietly friendly. Wears a pink headband and a long dress.
The examination room and the equipment inside it remind me of OB/GYN visits when my ex was pregnant. In those tests, we wanted to see something. In this test, I suppose, we do not. I lie on my back. The jelly is cold.
The exam takes 40 minutes. The only point of visual interest in the somehow-coffee-stained drop ceiling above me is a circular, flat light fixture composed of concentric glass rings. It is like the eye of God, peering down at me. Not a personal, loving God, mind you. Or maybe it’s more like the hard stare of a universe that, if it took note of our trivial human suffering, would be indifferent to it. I breathe in and out, as instructed.
The technician takes several dozen pictures. There’s sound, too. Occasionally I hear the roar my blood vessels make, chugging busily. My blood vessels don’t share my worries. They just do their work. Some of the sounds they make are rather rude. I suppose that’s good. I like to think the boys in the engine room are somewhat boisterous. The rudeness sounds like health.
It’s time to stop staring at the light, sit up, and wipe the goo off my belly. The technician gives me a large piece of special medical paper designed for this very task.
After I leave, a radiologist will review the pictures and send a report to my doctor.
I have a half-dozen other tests to take in the next few weeks. X-Rays, scans, even a lung screening. Ordinarily when a doctor recommends a half-dozen tests, I shove the paperwork in a corner of my desk and forget about it. But this time, I decided to be an adult and follow through. I may even balance my checkbook one day.
I exit the mostly empty medical facility, call a Lyft, and stand on the sidewalk a while, taking in Boro Hall. On the ride home, I let my gaze caress the changing neighborhoods. Somehow the whole city seems more interesting. Or maybe more alive. Like air after rain. Even the familiar landmarks as I near home strike me as beautiful and reassuring.
Home again, I wash my hands, clean last night’s dishes—the kid and her boyfriend cook late at night—pour my first espresso of the day, and knock it back with plenty of fresh, cold water.
I text my friend, to whom I’d complained earlier about the instructions against tooth brushing. He asks, “Did they give you a mint?” I respond with a “ha-ha” emoji.
Much as I enjoy my job, am grateful for my health insurance, and appreciate the wonders of modern medicine, I decide to take the rest of the day off. You know, for mental health.
The post The eye of God appeared first on Jeffrey Zeldman Presents.
May 28, 2025
Accessibility 101
A11y 101: How to test manually
The post Accessibility 101 appeared first on Jeffrey Zeldman Presents.
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.
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.
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.)
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.
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.
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.
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 GridThe 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 multidimensional, relative 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.
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.