Subscribe to Aten Design Group feed
Updated: 10 min 33 sec ago

Extending Editoria11y with Custom Content Checks in Drupal

13 Oct 2026 at 20:53 UTC
Extending Editoria11y with Custom Content Checks in Drupal Joel Steidl Tue, 10/13/2026 - 14:53 Drupal

An editor copies a link from an email, adds it to a page, and publishes. The link text looks right. The destination opens. Nothing about the normal authoring workflow suggests a problem.

But the saved URL may not be the destination the editor intended to publish. Microsoft Safe Links can wrap an address in a long, encoded URL that sends visitors through a security-checking redirect service.

On of our client’s websites, a custom Editoria11y check helps editors recognize these links and replace them with the original destination. It adds site-specific guidance to a tool already used for accessibility feedback.

A Content Problem Worth Flagging

Microsoft Safe Links is a legitimate security feature, not evidence that a link is spam or malicious. The problem here was context: a URL copied from an email was becoming a public website link.

A simplified example looks like this:

<https://gcc02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fexample.com%2Fmeeting>

The intended destination is https://example.com/meeting. Publishing the wrapper makes that destination harder to inspect and introduces dependence on another redirect service. The addresses can also be difficult to read and maintain.

Those are good reasons for an editorial warning. They are not proof that every Safe Link violates WCAG or cannot be used with a screen reader.

The useful question was narrower: could the website identify this recurring content pattern and give editors a practical next step?

Read more

Categories: Planet Drupal

Freedom with the form Attribute: More Flexible Drupal Views Exposed Filters

6 Oct 2026 at 19:19 UTC
Freedom with the form Attribute: More Flexible Drupal Views Exposed Filters Joel Steidl Tue, 10/06/2026 - 13:19 Drupal

Drupal Views exposed filters tend to accumulate controls.

A basic search form may start with a keyword field and a few filters. Add sorting and an items-per-page selector, and Drupal naturally renders everything as part of the same exposed form.

That makes sense structurally. It does not always make sense visually.

Sorting often belongs above the results. Items per page may belong next to pagination. Filters might live in a sidebar or drawer.

The HTML form attribute gives us a simple way to separate those concerns.

Form controls do not have to live inside the form

Most of the time, an input belongs to the <form> that contains it.

But HTML allows controls to explicitly reference a form by ID:

Read more

Categories: Planet Drupal

The Cost of Waiting: Why CMS Maintenance Belongs in Every Website Budget

29 Sep 2026 at 21:34 UTC
The Cost of Waiting: Why CMS Maintenance Belongs in Every Website Budget Joel Steidl Tue, 09/29/2026 - 15:34 Process Drupal WordPress Backdrop CMS

Launching a website is a major milestone, but it does not mark the end of the investment.

Drupal, WordPress, and Backdrop are actively maintained software platforms. Core software changes. Modules and plugins release updates. Security vulnerabilities are discovered. PHP and other underlying technologies move through their own support cycles.

During a long website build, teams should be paying attention to those changes and applying updates when they make sense within the project cadence. That does not necessarily require a dedicated line item for updates. It does require recognizing that the software will continue to change while the site is being built.

The more important planning conversation is what happens after launch. Post-launch budgets often focus on new features, enhancements, and fixes specific to the site. Routine platform maintenance has to be planned alongside that work, or it is easy to defer indefinitely.

Updates are part of operating a CMS

Different content management systems handle releases differently.

Drupal has a well-defined release cycle, including regular windows for bug fixes and security releases. Backdrop similarly publishes scheduled minor releases and security release windows.

Read more

Categories: Planet Drupal

Who Owns the Icon? Building Author-Friendly Icon Systems in Drupal

1 Sep 2026 at 17:34 UTC
Who Owns the Icon? Building Author-Friendly Icon Systems in Drupal Joel Steidl Tue, 09/01/2026 - 11:34 Drupal

Icons seem like a small implementation detail until a site has a large design system, multiple authoring workflows, and content that changes independently of the theme.

Then a basic question becomes important: who owns the icon?

For some parts of an interface, the answer is clearly the theme. Alert states, event metadata, and other stable UI patterns should remain predictable.

Other icons behave more like content. Authors may need to choose an icon for a navigation item, card, banner, or other component. In those cases, hardcoding the choice in the theme creates a dependency between content and code that becomes difficult to maintain.

The goal is not to move every icon into Drupal. It is to give the right people control over the right decisions.

Start with ownership

I generally think about icons in two groups: icons whose meaning belongs to a fixed interface pattern, and icons whose meaning belongs to authored content.

An alert is a good example of the first group. Drupal or an author might determine that an alert has a warning status, but the theme should decide which icon represents “warning.”

Event metadata works the same way. Date, time, and location have stable meanings within an event teaser. Those icons belong to the component, not to an individual event.

Hardcoding those relationships protects consistency.

Read more

Categories: Planet Drupal

Choosing a Multisite Approach in Drupal

11 Aug 2026 at 15:56 UTC
Choosing a Multisite Approach in Drupal Joel Steidl Tue, 08/11/2026 - 09:56 Drupal

Organizations usually begin considering a multisite approach (the ability to manage multiple distinct websites from one single Drupal instance) when they are scaling their digital presence. This scaling is not only about traffic, but also about organizational structure.

Common drivers include:

  • the need to support many related brands, locations, or programs that require their own websites
  • pressure to reduce long-term maintenance costs and duplicated effort
  • desire to balance central governance with local autonomy, while maintaining shared design systems or functionality across multiple properties.

A multisite architecture is not always the right answer. It often introduces additional complexity and is rarely justified when sites have fundamentally different goals or audiences, when editorial teams require complete independence, or when there is insufficient technical capacity to support shared infrastructure.

When a multisite approach does make sense, there are several established patterns in Drupal. Each pattern solves a different organizational problem and comes with meaningful tradeoffs.

Single Codebase, Multiple Sites

This category includes approaches where many independent Drupal sites share a common codebase while maintaining separate databases, configuration, and content.

Read more

Categories: Planet Drupal

A/B Testing in Drupal Without the Enterprise Price Tag: A Practical Guide Using the A/B Test JS Module

4 Aug 2026 at 22:56 UTC
A/B Testing in Drupal Without the Enterprise Price Tag: A Practical Guide Using the A/B Test JS Module Joel Steidl Tue, 08/04/2026 - 16:56 Drupal

Many organizations want to run A/B tests but either don’t know where to start or are discouraged by the high cost of enterprise-grade experimentation platforms like Optimizely or VWO. The good news: if your website runs on Drupal, there’s an approachable, flexible, and cost-effective alternative that can be built right into your existing Drupal instance.

But first—what is an A/B test?

A/B testing is a method for comparing two or more versions of a webpage or user experience to determine which performs better. Visitors are randomly assigned to different versions (variants), and their behavior is tracked to measure effectiveness against a goal; such as conversions, engagement, or navigation success.

In this post, I’ll share how we implemented A/B testing for Oberlin College & Conservatory to test two versions of a homepage design using the community-contributed A/B Test JS module and why it’s a powerful approach for teams that want accurate testing without engaging with another vendor or purchasing software.

Read more

Categories: Planet Drupal

Using AI to Moderate Content in an Existing Drupal Workflow

8 Jul 2026 at 22:16 UTC
Using AI to Moderate Content in an Existing Drupal Workflow Joel Steidl Wed, 07/08/2026 - 16:16 Drupal A New Solution to An Old Problem

Content moderation is a data processing problem. For large sites with many content contributors, moderators can get bogged down catching obvious content policy violations without having time to do real editorial work.

Meanwhile, AI is great at fast, consistent classification of text, which is exactly the kind of work that can clog an editorial queue. It’s not a replacement for human judgment: it makes mistakes, it can be gamed, and it lacks context. But as a first-pass filter, AI can meaningfully shrink the noise that reaches a human reviewer.

This post walks through adding that type of AI content filter to an existing Drupal workflow using contrib modules and no custom code.

Implementing the Solution

Modules

The full solution uses zero custom code. Here are the key contrib modules:

Read more

Categories: Planet Drupal