Ideas, inspiration and examples for your own projects.
Does what it says on the tin.
This repository is a community-curated list of flexbox issues and cross-browser workarounds for them. The goal is that if you’re building a website using flexbox and something isn’t working as you’d expect, you can find the solution here.
An exciting accessibility change is coming to Chrome 50. Google calls it “focus starting point” and it’s a small—but incredibly helpful—change to how their Web browser manages focused elements and tab order.
If something has focus, it’s also the focus navigation start point, just like before. Also, just like before, if nothing else has set the focus navigation start point, then it will be the current
documentor, if available and supported, the currently active
dialog. If we navigate to a page fragment like in the example above, that will now set the focus start point. Also, if we click any element on the page, regardless of whether it is focusable, that will now set the focus navigation start point. Finally, if the element which was the focus start point is removed from the DOM, its parent becomes the focus start point. No more focus whack-a-mole!
As the article explains, prior to this change, focus management can be difficult when tabbing around and moving within a document (or into and out of modal dialog boxes). Take heed of the note in the article’s caveats section:
Sequential focus navigation starting point is currently only supported in Chrome 50, Firefox, and Opera. Until it is supported in all browsers you’ll still need to add
tabindex="-1"(and remove the focus outline) to your named anchor targets.
Google’s Paul Lewis answers the same questions that Matt Gaunt received (and that I previously linked to). Paul’s focus on the user and their experience of our work resonates strongly with me and is something I harp on quite frequently.
I think performance, accessibility, and security share some traits: they can’t be retro-fitted to a project, they’re often thankless tasks, and they’re only notable by their absence. They’re all, however, the bedrock of a good user experience, onto which you can layer high quality designs and interactions.
Paul also cites one of my favorite documents, the W3C’s HTML Design Principles:
In case of conflict, consider users over authors over implementors over specifiers over theoretical purity.
Google Chrome Developer Advocate Matt Gaunt publicly answers some Web performance-related questions he received. Many of the questions have to do with frameworks, a topic of great interest to me.
A slow website, no matter how it’s built, means someone didn’t notice, didn’t care or couldn’t fix the problem. That doesn’t mean the framework or tools used to build it is the problem, it could be the way those tools have been used.
It could also be that the chosen tool isn’t the best solution to the problem at hand.
Bookmarklets are not dead. They may, however, be pining for the fjords.
Like Jeremy, I have a simple bookmarklet for saving links to my own site. My bookmarklet opens a new window/tab, passing via URL parameters the URL and title of the current window/tab to a page on my site. If I’ve highlighted some text in the page, the bookmarklet will grab that and insert it into the body field on my link form, prepended with a
>(the Markdown syntax for a
Not-so-humorously, that last piece doesn’t work on overly-clever sites like Medium that monkey about with browser-native user interface. Neutral face emoji.
- Set realistic time limits
- Find the right crew
- Get the most out of it
- Stay focused
- Keep it simple
- Ask for help
- Most importantly, follow up
This is great advice. Timely, too! Next week, we celebrate Refresh DC’s tenth anniversary.
I posted yesterday on Twitter about an issue I ran into when trying to use a bookmarklet on a website—GitHub, in this case—with a Content Security Policy. Instapaper developer Brian Donohue pointed me to a post he’d written on just this issue in 2014.
The ultimate catch-22 of the new Content Security Policy wording is that it’s intended to benefit the users, by providing additional security from hypothetical malicious add-ons on websites that enforce a Content Security Policy. In the end the bookmarklet has been relegated obsolete by the change, a casualty of one clause in one section of one web specification, and end-users and developers are the ones who will mourn its demise. The path to hell is paved with good intentions.
I’ve implemented a CSP on my own site and have now switched from using Instapaper’s bookmarklet to their Safari extension.
I’ve come to realise that the real power of the web lies in its ubiquity. Just as Tim Berners-Lee first intended, a website can be accessed on any device with any browser as long as there’s some kind of internet connection. That still amazes me. And it continues to break my heart when I see people choose to deliberately ignore that superpower and build sites that only work for a subset of people.
Nate Berkopec’s article is chock full of useful information, but I was particularly taken by his framing of a developer’s job (emphasis his):
As developers, our job isn’t to tell the designers “Hey, you’re dumb for including over 500KB of WebFonts in your design!”. That’s not their job. As performance-minded web developers, our job is to deliver the designer’s vision in the most performant way possible.
The unicode-range property describes what characters the font supports. […] By telling the browser what characters the font supports, the browser can look at the page, note what characters the page uses, and then only download the fonts it needs to display the characters actually on the page.
Brilliant. I switched to serving fonts from Google and trimmed 45–70 kilobytes from my homepage. Your mileage may vary, but… not bad.
Are you building your own website? Indie reader? Personal publishing web app? Some other digital magic-cloud proxy? If so, come by and join a gathering of people with like-minded interests. Bring your friends that want to start a personal web site. Exchange information, swap ideas, talk shop, or help work on a project.
We’ll be back at LivingSocial this week for another edition of Homebrew Website Club. Come on by, share what you’re doing with your personal website, and learn about what others are doing with theirs.
Slides from Tammy Everts’ 2013 presentation on the neurological effects of poor performance on our websites’ visitors reveal some startling facts. Right out of the gates, Tammy cites a 2010 EEG study of users navigating a site on a connection throttled from 5MB to 2MB. The study found that participants had to concentrate up to 50% harder and reported a negative brand association afterward.
Champion good ideas.
It’s one of LivingSocial’s company values and it’s what I’m here to do today. The idea? Creating the kind of environment where your team is comfortable asking questions & thinking out loud.
My brilliant co-worker Sara on the importance of asking questions and thinking aloud. Few things are more devastating to a company’s culture—and detrimental to the organization’s success—than making team members feel they can’t speak up or ask questions.
America doesn’t have a gun problem. It has several of them.
An intense seven-minute explainer from Vox highlighting the disproportionate rate of gun violence in the United States.
As Jason Kottke wrote when sharing this video:
Easy access to guns turns bad moods, bad politics, bad religion, bad brain chemistry, and bad ideas into murder.
A cool new front-end performance analysis tool from Gaël Métais that offers code improvements.
This is done by loading the webpage via PhantomJS and collecting various metrics and statistics with the help of Phantomas. These metrics are categorized and transformed into scores. It also gives in-depth details so developpers can correct the detected issues.
Yellow Lab Tools dovetails nicely with more popular performance tools like WebPageTest.
Looking for more great links organized by year? Browse the archives.