Planet Drupal

Subscribe to Planet Drupal feed - aggregated feeds in category Planet Drupal
Updated: 20 hours 24 min ago

Elevated Third: A Developer’s Impact on Implementing an Accessible Web

12 September 2017 - 8:30pm
A Developer’s Impact on Implementing an Accessible Web A Developer’s Impact on Implementing an Accessible Web Anthony Simone Tue, 09/12/2017 - 21:30

Creating accessible web applications can initially be quite a daunting task. Whether you’re working on a project that needs to be compliant with law or not, it can be hard to figure out what is most important to focus on. There’s ADA Compliance, WCAG 2.0 Compliance, and 508 Compliance, and navigating the technical differences between them all can end up taking more time than simply focusing on building accessible applications in the first place.

All three of the above types of compliance have different histories and different rules about the types of websites, web applications, or organizations they affect, however, at their core, they all are trying to accomplish the same thing: Make an accessible web.


So then what is accessibility? From a developer’s point of view, this can be a difficult question to answer when initially delving into the subject matter. Digging through documents related to the compliance patterns can be complicated, especially if your main concern is ensuring you pass compliance by any of the above definitions.

It can be easy to lose sight of the purpose of implementing an accessible web when trying to sift through the regulations. The goal is to make your application usable by everyone! Despite the somewhat complicated language around some of these compliance patterns, the WCAG 2 At a Glance page gives a good general baseline of what to consider. It breaks accessibility down into 4 general requirements: perceivable, operable, understandable, robust.


  • Provide text alternatives for non-text content so that it can be changed into other forms people need, such as large print, braille, speech, symbols or simpler language.
  • Provide captions and other alternatives for multimedia.
  • Create content that can be presented in different ways,
  • including by assistive technologies, without losing meaning.
  • Make it easier for users to see and hear content.


  • Make all functionality available from a keyboard.
  • Give users enough time to read and use content.
  • Do not use content that causes seizures.
  • Help users navigate and find content.


  • Make text readable and understandable.
  • Make content appear and operate in predictable ways.
  • Help users avoid and correct mistakes.


  • Maximize compatibility with current and future user tools.


Maintaining the highest grade of AAA compliance will grow your audience, protect you from any future litigation, and provide equal access for Americans with disabilities.  

Ultimately, the intention is quite simple. Everyone should be able to use, access, and consume the content of your website. If this is the governing principle you use when planning a new web project, you’ll definitely be successful building an accessible web application.

Know Your Audiences

Accessibility considerations affect a wide variety of audiences. Understanding how these different audiences use the internet can give a great amount of insight into what a developer can accomplish.

There are two general groups of users we want to consider: users with some amount of vision impairment and users with some range of mobility issues. (Note: this is not to discount other groups that are specifically covered under some of the compliance documents. In this article, we are going to cover some best practices that a developer can implement while building a site, as opposed to considerations that may come up during UX or design like contrast issues, UI implementations, and more.)

Both of these groups of users are unique. If we look deeper at each of these cases, we’ll learn more about how they are interacting with the websites we build.

Motor Impairment

Internet users that experience some amount of motor impairment are generally using different means of navigating the internet than the traditional keyboard and mouse/trackpad. Users may not be able to manipulate a mouse and instead, only use a keyboard. Inversely, they may not be able to use a traditional keyboard but use an alternate interface to interact with a website. Some people’s motor ability may limit them to using a small number of keys.

The big takeaway from the motor impairment user group is that web navigation must be clear, straightforward and possible with just a keyboard. Try this, go about some everyday tasks on the internet only using your keyboard. You’ll immediately start to notice websites that have or have not taken accessibility into account.

Visual Impairment

Users with some degree of visual impairment will typically consume data on a web page differently. This can vary widely on a case by case scenario, but users may increase the font size, they may rely on descriptive copy to understand the contents of images, and they may rely on a screen reader to translate all visual content into auditory content on a webpage.

The big takeaway here is that content of a web page is consumed in many different ways. Appropriate markup and theming goes a long way for someone using a screenreader. If you are on a mac, you can go to System Preferences > Accessibility and turn voiceover on, then use command + F5 to enable it. Try it out!

It’s important to keep in mind that many users employ a combination of features from both user categories. Which means these accessibility features are important for all device types, not just a desktop sized experience.

Where to Start?

If at all possible, start at the beginning! Accessibility shouldn’t be treated like browser testing and ignored until QA at the end of a project. By then, you’ll likely have a lot of work ahead of you. If you’re considering all of this functionality as you are planning elements like menus, sliders, tabs, accordions, or other functional components that either help with navigation or display content, then you can start with an appropriate implementation from the beginning. This lets you plan your features and components appropriately within the context of accessibility instead of having to build around them later.

The following list of considerations is a great place to start when planning for accessibility on a new project or going through an old project to test functionality.

Focus Ring

All browsers have a default style associated with items that have focus, like links and buttons. As a general rule, you should not remove this. Or, if you are modifying it, make sure the replacement style is very obvious and easy to identify.



A user who is navigating your website with a keyboard relies on focus styles to know where their current context is within the webpage. Without that they would be totally lost, it would be like using a mouse with an invisible cursor.


Menus are one of the most important components on many websites. They allow you to navigate through the whole web application. Top priority with menu implementation is ensuring all links can be accessed with the keyboard, specifically the tab key.

Visibility / Display

It’s important to know what a screen reader recognizes as an item in the flow, and what it doesn’t. Though some screen readers may have specific behavior, the general rule is that elements with display: none; or visibility: hidden; are ignored by screen readers. Generally, content that is off screen, but not hidden in either of the above ways is considered an element in the flow by a screen reader. It’s important to know the difference because it can be used to make the experience better, and misuse can create a keyboard navigation nightmare.

A good rule of thumb is anything that shouldn’t be visible by a user using a keyboard and mouse should likely be hidden in one of the above ways. For example, if there is a menu that slides into place from off screen after you’ve scrolled down the page a certain amount. If this item isn’t explicitly hidden, someone navigating with tabs may have to go through all of the items they can’t see before they reach the real content.

Note: the visibility property can be transitioned, whereas, the display property cannot. This may come in handy when implementing transitions!

Skip Link

A useful convention for keyboard navigation users is the implement a “skip link.” The idea is that the very first time you click tab on a page, it focuses on a previously hidden link, that when clicked, will move your focus to the main content of the page. Drupal has a default implementation of this out of the box, but depending on your site structure, some extra customization might be appropriate. The following is an example of a snippet you can use for skip link functionality.

var $skipLinkHolder = $('#skip-to-content'),
  $skipLink = $skipLinkHolder.find('.skip-to-content-link');

$skipLink.on('click', function(e) {
    var $target = $($(this).attr('href'));
    $target.attr('tabindex', '-1');
    $target.on('blur focusout', function() {

You can also take advantage of the fact that offscreen items can be focused here by positioning it off screen but giving it different styles on focus.

Tab Order

It’s important to be aware of actual DOM markup source order and tab order. Too often, we position things absolutely or fixed and neglect the actual source order of the element. This can cause confusing scenarios when navigating a website by tabbing. It is important to ensure absolute and fixed position items are placed reasonably in the DOM with respect to a tab user's arrival upon them. The page can go a long way to make tab navigation more straightforward.

ARIA / Functional Components / Existing Tools

ARIA is a specification that handles adding more descriptive, contextual information to elements that can be used by screen readers to give the users extra context. ARIA can get a little bit confusing. Generally, there isn’t a huge amount of documentation around it, and it’s a spec describing purpose but not the implementation of these tags. So, different screen readers can potentially have some different behavior. Rolling your own functional component can be a pretty complicated endeavor when accessibility is taken into account. Fortunately, there are a lot of great existing tools backed by fairly large communities that can get you pretty far if you’re willing to leverage them.

Many tools and frameworks have accessibility baked in. It’s worth taking a look at what’s available before deciding to roll your own for some established types of functionality, like menus, tabs, accordions, etc. Foundation is a great tool that is very flexible regarding implementation. The majority of its components support accessibility very well, specifically the menus, accordions, and tabs components. They are a great option to use as a starter, and you can potentially use them for their markup, js, and ARIA support and do your own completely custom theme implementation over top.

Some popular solutions for problems like better multi selects already exist with ARIA and accessibility considerations (Select2 and Selectize). Though they might not all be perfect, leveraging existing tools and communities can be a great help. Because we don’t all have first-hand access to groups of users who use assistive technologies, this is an essential tool when implementing accessible web applications.


We learned about specific ways a developer can take responsibility for web accessibility. The responsibility of building an accessible web goes far beyond the developers during implementation, but there’s a lot that a developer can do on their own. The many layers of compliance and rules notwithstanding, taking some time to learn who your users are and how they’re using the web gives us the opportunity to build solutions that are accessible to as many people as possible.

Categories: Drupal

Glassdimly tech Blog: D8: Variables in template_preprocess_views_view not passed to twig

12 September 2017 - 12:41pm

I had a very strange problem wherein I was not able to affect variables being passed to views-view-grid--my_view.html.twig.

Categories: Drupal

Leander Lindahl: Drupal 8 Learning Series: 2. Disable Cache in a Devel Environment

12 September 2017 - 10:04am
Drupal 8 Learning Series: 2. Disable Cache in a Devel Environment Leander Lindahl Tue, 09/12/2017 - 19:04
Categories: Drupal

Drupal Modules: The One Percent: Drupal Modules: The One Percent — Link Attributes Widget (video tutorial)

12 September 2017 - 8:15am
Drupal Modules: The One Percent — Link Attributes Widget (video tutorial) NonProfit Tue, 09/12/2017 - 10:15 Episode 35

Here is where we seek to bring awareness to Drupal modules running on less than 1% of reporting sites. Today we'll investigate Link Attributes Widget, a module which extends core's link field formatter, allowing you add attributes through the UI.

Categories: Drupal

InternetDevels: Things every Drupal site should care about to defeat its competitors

12 September 2017 - 6:37am

Drupal is a great platform that has a great community and a great number of sites developed thanks to it. What makes it so great? What helps Drupal stand out among the competition? We’ve explained you 6 reasons why you'll love Drupal websites, and if you do love them and have your own website on Drupal now, then this article will give you a hint about what you should pay attention to stand out among your business competitors and defeat them.

Read more
Categories: Drupal

Hook 42: Hook 42 DrupalCon Vienna Sessions

11 September 2017 - 2:41pm

Along with our CTO, Kristen Pol, we have a new Accessibility Lead and Senior Front-end Developer, Carie Fisher, who will be in Vienna. We are excited to have her onboard! Carie is one of the community leaders who received a well-deserved scholarship to attend DrupalCon Vienna.

Categories: Drupal

Matt Glaman: Migrated: Now on Drupal 8!

11 September 2017 - 1:06pm
Migrated: Now on Drupal 8! mglaman Mon, 09/11/2017 - 15:06

My personal site is now officially migrated onto Drupal 8! I had first attempted a migration of my site back when Drupal 8.0 was released but had a few issues. With Drupal 8.3 it was nearly flawless (maybe even 8.2, but I had put the idea back burner.) I did have some interesting issues to workaround

Missing filter plugins

My migration process was halted and littered with errors due to missing plugins, specifically around my text formats. The culprits were:

Categories: Drupal

Valuebound: How to create custom REST method to protect your content from unauthorised use

11 September 2017 - 7:07am

In last few years, protecting data from an unauthorised use has become a challenging task. Recently, we came across a similar situation while working on a media and publishing industry project where most of the content was used through services. And we were requested to protect the content from unauthorised use and help in stopping such practices. 

Here in this scenario, RESTful Web Services API played a significant role in overcoming the situation. However, in some cases, the default RESTful API doesn’t work effectively and leave the requirement unfulfilled. In this case, we will create a custom REST method that helps you to access nodes using API keys. Let’s see how we can achieve this?

Here we need to deal with two things:

  • Create a View to export data…
Categories: Drupal

Jacob Rockowitz: Wow!!! vs. Aha...The Webform Module's User Experience

11 September 2017 - 3:50am

Wow and Sell vs. Understand and Aha...

Proprietary Content Management Systems (CMS) and online form builders have a lot of immediate wow, including snazzy marketing and very fancy user interfaces. I admit it: I like wowing people and the Webform module's user experience with video tutorials and it's very slick-looking elements like signatures and likert are meant to impress you. The Webform module's "Aha" moment happens when you grasp the software's full potential. Suddenly you understand the Drupal mantras, "There is a module for that; There is a hook for this; Anything and everything is customizable." Aha indeed.

The Webform User Interface/Experience

Circling back to Webform module's user interface and experience, there’s a limit to how much wow I can build. On the flip side, there is unlimited aha available. The latest releases of the Webform module includes a significantly improved UI with Ajax, element previews, tabbed dialogs, and more. The Webform module may never have a slick WYSIWYG drag-n-drop user interface... I’m okay with that. I’d like to share with you the current state of the Webform UI/UX and talk about some key concepts.

The current user interface for the Webform module leverages existing UX patterns from Drupal core. For example, using a modal dialog for creating new elements was inspired by the Blocks UI. The Webform module also includes support for core's experiment system tray. My goal is to provide "fluid user experience" that is logical and works for all users while providing an incredible amount of configurability and flexibility.

Here is latest and relatively final Webform UI/UX.

It’s not how you build the webform but what you do with the webform submission.

The actual form builder is not the most important feature of the Webform module. Without a doubt, generating form and submission handling is by far the most important aspect of...Read More

Categories: Drupal

Drop Guard: DrupalCon's 5 top DevOps & Automation sessions

11 September 2017 - 2:30am
DrupalCon's 5 top DevOps & Automation sessions

With the end of September, DrupalCon Vienna is also coming closer and we can't wait to welcome you to our booth #S08. As a Silver sponsor of the event, we'll have the chance to present continuous update management to you on site. But - we also can't wait to learn a lot from other agencies and attendees! At DrupalCon there's always a chance to learn something new, be it a whole new approach or a connecting piece of unidentified issues - by asking but most of all by listening.


Drupal Drupal Community Drupal Planet Drupalcon Business Events
Categories: Drupal

Drupal Commerce: Next steps for Drupal Commerce documentation

10 September 2017 - 6:01am

With the Drupal Commerce 2.0 release slated for September 20th, we are making an effort to provide excellent documentation so that our implementers and end users can work with Drupal Commerce efficiently. We also want to encourage contribution at all levels, such as documentation. I am happy to announce we have moved from using Sphinx, a Restructured Text documentation tool, to GravCMS. GravCMS is a PHP based flat-file CMS, which uses Markdown.

Why the change?

We found that while Sphinx provided robust features, it also added a high entry barrier for documentation contributors:

Categories: Drupal Drupal's database schema model

9 September 2017 - 7:24am

We shall do a deep dive of Drupal's database schema. For the purpose of simplicity, we shall deal exclusively with SQL queries and not step out of DB land unless its required. By doing this exercise, we can derive Drupal's schema from first principles. Let's start with a humble node, more specifically, an article content type which ships by default with Drupal's core. It consists of the node ID, the node type and node properties, i.e. the node title and node status. We are assuming only one bundle, the "article" bundle for now.

Categories: Drupal

agoradesign: Potential pitfalls when using Dompdf and how to fix them

9 September 2017 - 6:54am
In a current project, I had to generate PDF documents based on custom entities on a Drupal 8 page. Although this has never been so easy than with Dompdf, I've stumbled across two problems which cost my some time to find out and fix.
Categories: Drupal

DrupalCon News: Introducing a new form of Drupal sprints: Drupal Marketing Sprints

8 September 2017 - 4:24pm

At DrupalCon Vienna One Shoe will host the very first Drupal Marketing Sprint on Thursday, 28 September 2017. The goal is for Drupal businesses and agencies to work together to create marketing materials that promote Drupal as a whole. Come prepared with examples of Drupal marketing material that has caught your attention so you can start the sprint with something to work with. Read more in the following blog from Michel van Velde, One Shoe CEO.

Categories: Drupal

Glassdimly tech Blog: D8: Disable Block Programmatically on Just One View or Node

8 September 2017 - 2:43pm

It's not always possible to use a path to determine block visibility.

Therefore, here is how you programmatically disable a block on specific view without recourse to path.

Categories: Drupal

Palantir: On The Air With Palantir, Ep. 08: Los Drupaleros

8 September 2017 - 12:48pm
On The Air With Palantir, Ep. 08: Los Drupaleros On the Air With Palantir brandt Fri, 09/08/2017 - 14:48 Juan D. Flores with Allison Manley Sep 8, 2017

We want to make your project a success.

Let's Chat.

All about one Drupalero's experience in the Drupal community.

Welcome to the latest episode of On the Air with Palantir, a long-form (ad-hoc) podcast by where we go in-depth on topics related to the business of web design and development. In this episode, Allison Manley is joined by Juan Daniel Flores of Rootstack, and Juan dives into the Drupal world of Latin and Central America.

iTunes | RSS Feed | Download | Transcript

Subscribe to all of our episodes over on iTunes.

We want to make your project a success.

Let's Chat. Transcript

Allison Manley [AM]: Hi, everyone. Welcome to On the Air With Palantir, a podcast by where we go in-depth on topics related to web design and development. I'm Allison Manley, Sales and Marketing manager. Today, my guest is Juan Daniel Flores of Rootstack. Juan spent some time with me a few months back telling me about all the exciting things happening with Drupal in Latin America. Here we are at DrupalCon Baltimore 2017-

Juan D. Flores [JDF]: That's right.

AM: ... in the convention center at the corner of Pratt and Charles Street. I am sitting with ...

JDF: Juan Flores from Rootstack from Panama.

AM: From Panama. You came all the way from Panama.

JDF: Yes, sunny, tropical Panama. Yeah. The temperature is quite a good a change for me.

AM: Is it?

JDF: I was born in Colombia, in Bogota, actually. The temperature is more or less like this. I really miss the cool temperature, because in Panama, sometimes it gets really, really hot.

AM: Well, we're welcome to give you a nice, rainy break, so ...

JDF: Yeah, I appreciate it.

AM: Is this your first Drupal Con?

JDF: Yeah, this is my first personal, my first Drupal Con in the States, but we have been attending Drupal Con like, since five years ago. We are three partners, and they do most of the traveling.

AM: Okay. Excellent. How long have you been involved in Drupal?

JDF: We have been involved with Drupal like from seven years ago right after college. We graduated, and we got our degrees, and we started the company. We started with Drupal right away. We learned about Drupal, actually, by a friend in the college. It was like we saw the tool. We saw all the things that you could do, and we were like hooked up, like, "We have to do this. We have to use this." It's been quite a long time.

AM: Wow. That's great. Were you self-taught or ...

JDF: Totally self-taught. In the university, they teach you certain things, but to be, to thrive in this world, you really have to be very proficient in learning by yourself. You have to be active. You have to be checking what's going in the world. Thanks to our desire to know more, we picked it up and here we are seven years later.

AM: And here you are. Glad to have you. You call yourselves the Drupaleros, sort of jokingly.

JDF: Yeah, that's the term we use for Drupal. That's in Spanish. It's a term that we use in general.

AM: Universally.

JDF: Yeah. Universal.

AM: So that's not just the Panamanian-

JDF: Exactly. Exactly.

AM: Okay. I feel like there's a presentation next year for just the Spanish-speaking Drupaleros. I feel like there's some sort of presentation you should make around that and what's happening in Latin and Central America.

JDF: That will be interesting. Even though like I feel that we're a little bit late to the party, in terms of doing stuff, there has been a lot of work that has been done by Latin developers. For example, there's Jesus Olivas, which is ... Well, and the team from We Know It, that they have been working hard with the Drupal console project, which is picking up, really, a great amount of fans. He gave a talk yesterday. He's from Mexico. There's another guy. His name is Omers. He's also from Mexico. The other guys, Anso and Kenya are from Costa Rica.

AM: How many would you say there are total between Latin and Central America, you know, that you keep in touch with on a regular basis working in Drupal?

JDF: It's hard to tell to know a certain number because, unfortunately, the community there is like a little bit shy. But I can say that, for example, if I can measure events that we have gone to, for example, the DrupalCon in Costa Rica, or the DrupalCon Central America that we did a couple years ago, I would say we could see around 400, but it's hard to ... They show up for events. There are a lot of people that show at events. It's the the building the community that's hard.

AM: How did you start out? Tell me about the beginnings of your business, then.

JDF: We were in college. One of the partners approach to us. He told us like, "Hey, I think we should do this. We should make a company for our own." We are good, each one, in our own stuff. For example, one of the partners is very good at business development, organizing. The other one is very good at developing. He's a very strong skill set. I'm more like the creative one in terms of design, in terms of implementing the science. We're sort like a match in terms of our skills. We started that in 2010, and we slowly grew. We recruited guys fresh out of college from our own university. Then, we started to build the team. One of the things that I have heard here is that it's hard to find Drupal developers. Which if it's hard for you, it's harder for us. It's been years of finding good people that we think that can be a good fit and training them. I think there's a value in that, in home-growing the developers. Because if they aren't there, you have to make them.

AM: Right. How big are you now?

JDF: We are 25.

AM: Oh, so you went from 3 to 25 in just seven years.

JDF: Yeah.

AM: Wow.

JDF: We have 18 developers. Then marketing sales, designers, so yeah. We hope to keep growing, and yeah. Basically, the objective is to be bigger, to go for more services. Even though we started as a Drupal shop, now we're doing more stuff. We're doing automations. We're doing mobile development. We're doing interesting projects in terms of challenges. For example, last year we did a project for a company here. Basically, we did a mobile app in Ionic that you could turn on, turn off, set the temperature of your spa machine. They sell spa machines that have a wifi antennae. You could be in your office, and you say, "Oh, I'm going home." You start the spa. You set the temperature. When you get there, there it is.

AM: That's excellent.

JDF: Yeah.

AM: That's quite a range of services that you do provide already, even if you feel like you want to add more.

JDF: Yeah, yeah. It is to find projects that are challenging and interesting. That's the what we're looking for.

AM: What would you say is your main client base or what vertical?

JDF: Basically, companies that split in two, in terms of half the company works with agencies here in the States providing Drupal services, so back-end, front-end development, and the other half of the team works with local clients. In terms of local and regional clients, our main verticals are government, banks, certain industries, like ... You have big clients like supermarket chains, people that are looking for very complex web projects, or automations, or yeah, that kind of solutions that we can provide. Yeah, that's what we are ... The companies, like two companies in terms of what we focus on.

AM: Fair enough. Your first DrupalCon, what do you think so far?

JDF: It's been great. I mean, the level of the sessions have been great. I really like the fact that people are very open to talk, very friendly. I know that in our conferences that, for example, I have been, it's harder to meet people, to find a point of conversation where you can start. But here, it has been great. The parties have been great, also. They provide a good space for talking. For example, yesterday, I was with the guys at Lullabot. They were super friendly, super fun. We have a lot of fun. Yeah, I really like. It's right what they say about the Drupal community. It's very open and very ... Well, even though what has happened recently, I think the people here are very good people, you know?

AM: I would agree with that.

JDF: Well, I hope that you go next year to Nashville.

AM: I will be there in Nashville. I would love to go to Costa Rica if I could swing it, but-

JDF: Yeah, so there in August. It's super fun. There's a good vibe always. We always do some, like after the camp, we always do like a trip to an island, or a beach, or-

AM: Forest. Something.

JDF: Yeah, very relaxing.

AM: Sounds amazing.

JDF: You can add your vacations and you do a-

AM: Any others to look forward to or ...

JDF: That's the ones I think right now the top of my head.

AM: All right.

JDF: I think Mexico is organizing one, too.

AM: Fantastic.

JDF: Yeah.

AM: Look forward to it.

JDF: Yeah.

AM: Thank you so much, Juan.

JDF: Yeah, look forward to seeing you. Thank you.

AM: Thanks for listening. Follow us on Twitter at Palantir or read our blog at Have a great day.

Categories: Drupal

Glassdimly tech Blog: Drupal 8.3: Create Programmatic Custom Breadrumb

8 September 2017 - 9:37am

Well, today I'm making custom breadcrumbs.

If you or others have done things the right way, you can probably use Easy Breadcrumbs or Views Breadcrumb before doing it this way. But if you haven't, stick around and learn about Drupal breadcrumbs.

There are multiple stack overflow posts on this but none of them actually seem to work for me. It seems that the code for Breadcrumbs in core has changed over time.

Categories: Drupal

Mediacurrent: Blockchain: Long Thoughts

8 September 2017 - 8:00am
First thoughts...

It has always been said that “the book is better than the movie.” This blog post gives a behind-the-scenes look at the writing that inspired the Friday 5 video.


Due to the Mediacurrent Friday 5 being a series that lasts 5 minutes, and the unfortunate absence of a suitable ”Friday half hour to 45 minutes” show, the content would be again, reimagined.

Categories: Drupal

Blair Wadman: Accessible Drupal 8 modals when Javascript is disabled

8 September 2017 - 5:01am

In the previous tutorial, you learnt how to create a modal in a custom module. If you missed it, you can check it out here.

Categories: Drupal

InternetDevels: Why Drupal should power your content-heavy website

8 September 2017 - 2:29am

More and more often, developers and users see that Drupal is arguably the most powerful CMS today. We have also repeatedly written about the benefits of Drupal for your business.

Read more
Categories: Drupal