Search icon
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletters
Free Learning
Arrow right icon
Modernizing Drupal 10 Theme Development

You're reading from  Modernizing Drupal 10 Theme Development

Product type Book
Published in Aug 2023
Publisher Packt
ISBN-13 9781803238098
Pages 360 pages
Edition 1st Edition
Languages
Concepts
Author (1):
Luca Lusso Luca Lusso
Profile icon Luca Lusso

Table of Contents (21) Chapters

Preface 1. Part 1 – Styling Drupal
2. Chapter 1: Setting up a Local Environment 3. Chapter 2: Setting a New Theme and Build Process 4. Chapter 3: How Drupal Renders an HTML Page 5. Chapter 4: Mapping the Design to Drupal Components 6. Chapter 5: Styling the Header and the Footer 7. Chapter 6: Styling the Content 8. Chapter 7: Styling Forms 9. Chapter 8: Styling Views 10. Chapter 9: Styling Blocks 11. Chapter 10: Styling the Maintenance, Taxonomy, Search Results, and 403/404 Pages 12. Part 2 – Advanced Topics
13. Chapter 11: Single Directory Components 14. Chapter 12: Creating Custom Twig Functions and Filters 15. Chapter 13: Making a Theme Configurable 16. Chapter 14: Improving Performance and Accessibility 17. Part 3 – Decoupled Architectures
18. Chapter 15: Building a Decoupled Frontend 19. Index 20. Other Books You May Enjoy

Improving Performance and Accessibility

The famous computer scientist Donald Knuth once said, “Early optimization is the root of all evil.” And he is probably right. Trying to write the best code from the beginning could lead to wasting time.

As you approach the end of the initial implementation phase, you must begin thinking about optimizing your work. In frontend development, the most important optimizations are related to performance, accessibility, and search engine optimization (SEO).

In this chapter, we’ll turn our attention to these topics:

  • Performance
  • Accessibility

Technical requirements

To run the examples in this chapter, make sure to follow the instructions in Chapter 1, Setting Up a Local Environment.

You can find the code for this chapter in the GitHub repository: https://github.com/PacktPublishing/Modernizing-Drupal-10-Theme-Development.

Performance

To start measuring the performance of the demo website, we should again enable all the optimizations that we disabled in Chapter 1, Setting Up a Local Environment. To do so, simply comment on the inclusion of settings.local.php in the web/sites/default/settings.php file:

if (file_exists($app_root . '/' . $site_path . '/settings.local.php') && getenv('IS_DDEV_PROJECT') == 'true') {
  //include $app_root . '/' . $site_path . '/settings.local.php';
}

Clear the cache, and the demo website now runs with the production configuration.

There are different ways to measure a website’s performance, but the most used one is the suite provided by Google.

Google Lighthouse

Google Lighthouse is an open source tool developed by Google that provides developers and website owners with valuable insights into the performance, accessibility, SEO, and best practices of their websites. It is an...

Accessibility

Scrolling down the Lighthouse report, we come to an Accessibility section. The score is quite good; the only issues are caused by some poor color contrasts:

Figure 14.11 – Accessibility audit from Google Lighthouse

Figure 14.11 – Accessibility audit from Google Lighthouse

Usually, markup produced by Drupal is pretty accessible; the community behind the CMS is very sensitive about this topic. Main issues are usually added by our custom templates.

This is not a book about accessibility; that is a huge topic, and there are many resources about it – for example, in the Mozilla Web Docs: https://developer.mozilla.org/en-US/docs/Web/Accessibility. In the next sections, we’ll discuss the features that Drupal provides us with to implement some of the techniques required to make a website as accessible as possible.

One of the best forms of help that you can give to your users is to correctly set the attributes defined by the Accessible Rich Internet Applications (ARIA) specifications...

Summary

In this chapter, we’ve talked about Google Lighthouse and how to use its report to find and resolve performance and accessibility issues.

You’ve learned how to provide images tailored to different devices and how to configure Drupal to serve images that the browser will lazy-load; we’ve then discussed why not all images should be loaded lazily.

We talked about critical CSS and how its usage can speed up the perceived performance of a page.

Lastly, we saw some techniques that are useful to make our pages accessible to users who use assistive technologies to navigate the web.

lock icon The rest of the chapter is locked
You have been reading a chapter from
Modernizing Drupal 10 Theme Development
Published in: Aug 2023 Publisher: Packt ISBN-13: 9781803238098
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime}