Software

Code Karate: Drupal 7 Node Expire module

Drupal Planet - Fri, 2014-08-29 15:58
Episode Number: 165Drupal 7 Node Expire module - Daily Dose of Drupal episode 165

The Drupal 7 Node Expire module allows you to use the power of the Rules module to perform actions on nodes at a specific point in time (when the node "expires"). This is useful for things such as unpublishing your content after a certain amount of time, or removing your content from the front page after it's been published for a week. You can also create rules actions to send an email at a specific time to serve as a reminder to do something related to a node on your Drupal site.

Tags: DrupalDrupal 7Drupal Planet
Categories: Software

Drupal Commerce: Commerce 2.x Stories - Internationalization

Drupal Planet - Fri, 2014-08-29 15:00

Welcome to the first article in the “Commerce 2.x Stories” series. As Commerce 2.x development heats up, we’ll be covering interesting developments, ideas, and contributors.

Our first topic of interest is internationalization and localization. This involves tasks from translating UIs and content to representing numbers, currencies, and dates in a locale specific manner. It’s also a current pain point with Drupal 7 / Commerce 1.x - especially as it relates to currency management.

Read on to see what we're doing to improve it...

Categories: Software

Mark Shropshire: Drupal Camp Asheville 2014

Drupal Planet - Fri, 2014-08-29 14:06

I had a great time at this year's Drupal Camp Asheville. This year's camp was held at the beautiful Crowne Plaza Resort on Saturday, August 23rd. Amenities included coffee, breakfast foods, a ping-pong table, and a great lunch (surprisingly good for a conferenc center). Thanks to Matthew Connerton, the Asheville Drupal User Group, and all of the sponsors, presenters, and attendees for making this a great camp! I attended a few sessions and hung out in the hallways chatting with long time Drupal friends and meeting new ones. I really enjoyed the presentations I attended:

I am looking forward to having the presentation videos posted to the Drupal Camp Asheville website so I can catch up on the ones I missed.

I had the pleasure of presenting "Digital Signage with Drupal and Metoer". A good number of session attendees were interested in Meteor, so I am glad to spend a bit of time talking about what Meteor is all about and how it works. The session was well attended and the questions from the attendees really made it a lot of fun!

Check out the slide deck below. I have also attached a PDF version so links in the presentation can be followed.

Blog Category:  AttachmentSize Digital Signage with Drupal and Meteor.pdf4.79 MB
Categories: Software

Deeson Online: Part 1: Apache Solr - Creating Custom Fields

Drupal Planet - Fri, 2014-08-29 11:04

This is the first of two blog posts. In this one I will show you how to create a custom search index in Apache Solr. Part 2 will go into how you can then manually set the field bias of your custom field so that you can control it through the settings with the Apache Solr module.

Creating a custom field

Adding custom fields to Apache Solr is often something that you can end up needing to do for a project. The Apache solr module makes this easy to do with: hook_apachesolr_index_document_build().

/** * Implements hook_apachesolr_index_document_build(). */ function MY_MODULE_apachesolr_index_document_build(ApacheSolrDocument $document, $entity) { $document->addField('ss_my_field', ''); }

When defining the field you will notice that this is prefixed with 'ss_' which is very important as it tells Apache Solr what type of field it is.

This prefix can be two or three characters long, with the first character defining the data type of field (e.g. string (s), boolean (b), date (d) etc.) and the last character defines if it is a single (s) or multi-valued (m) field.

If you have a look at the schema.xml file that comes with the ApacheSolr module you will see a section that details the standard prefixes for field indexes. Here is a snippet from the file:

<!-- We use long for integer since 64 bit ints are now common in PHP. --><dynamicfield indexed="true" multivalued="false" name="is_*" stored="true" type="long"> <dynamicfield indexed="true" multivalued="true" name="im_*" stored="true" type="long"> <!-- List of floats can be saved in a regular float field --><dynamicfield indexed="true" multivalued="false" name="fs_*" stored="true" type="float"> <dynamicfield indexed="true" multivalued="true" name="fm_*" stored="true" type="float"> </dynamicfield></dynamicfield></dynamicfield></dynamicfield>

Having defined your new index you will need to tell Apache Solr about it. To do this all you have to do is do a full re-index of your content which will register your custom field with Solr. You can check that your field has been index correctly by checking the Solrs search index report - /admin/reports/apachesolr.

Having now indexed your new field you can now alter the query to make sure of this new field using hook_apachesolr_query_alter().

/** * Implements hook_apachesolr_query_alter(). */ function MY_MODULE_apachesolr_query_alter(DrupalSolrQueryInterface $query) { $query-&gt;addParam(&#39;sort&#39;, &#39;ss_my_field asc&#39;); }

You will now see that this is changing the results of your search based upon you new field.

Now you've created your customer field, my next post will show you how you can define it so that you can manually set the field bias within the Apache Solr admin section when a search is performed.

Interested to get feedback on part one though - so share your comments below!

Read morePart 1: Apache Solr - Creating Custom FieldsBy Mike Davis | 29th August 2014
Categories: Software

Forum One: Introducing the Gesso Theme

Drupal Planet - Thu, 2014-08-28 21:31

Gesso theme on drupal.org For the past year Forum One has been using a Drupal starter theme created in-house to make theming more flexible, consistent, and easier to maintain. This theme is now available on drupal.org! Gesso (pronounced JEH-so) is an art term for the white paint mixture used to prepare a canvas or sculpture for painting. Likewise, the Gesso theme prepares Drupal’s markup and styles to give us a clean starting point.

Gesso is a responsive, Sass-based theme developed with accessible, standards-compliant HTML5 markup. It follows a mobile-first, future-friendly approach to coding responsive websites. Gesso also removes much of the cruft that we previously tended to override on each project and standardizes common components.

A word of caution: this theme is geared towards advanced themers. If you want to be able to manipulate the theme’s design, markup, or layout via a nice GUI, Gesso is not the theme for you. We built this theme to make it easy to customize within the Drupal theming layer, without getting in your way.

Gesso is not a stand-alone product. It depends on several Drupal modules and Sass tools: Magic, HTML5 Tools, Compass, Breakpoint, and Singularity.gs. It also integrates well with optional Drupal modules such as Display Suite, Panels, Blockify, Clean Markup, and Modernizr.

To be clear, Gesso wasn’t created in a vacuum. We got a ton of great ideas by diving deep into the code of other Drupal themes, such as:

If you want to develop a deeper understanding of Drupal theming, I encourage you to check out the code within these themes.

The biggest differentiator between Gesso and other themes is the altered Drupal markup, which makes it easier to follow the Drupal 8 CSS architecture guidelines. This theme leverages SMACSS with a modified BEM naming convention to organize styles. This encourages a component-based approach to theming through the creation of discrete, reusable UI elements.

In follow-up articles we’ll cover Gesso in more depth, including Sass organization, site building, and theme settings. Please join us in the issue queue if you have questions or ideas on how to improve it.

Categories: Software

LightSky: The Drupal Community

Drupal Planet - Thu, 2014-08-28 20:12
Download

In this episode of Time to Live we have Doug Vann as our guest.  Doug is the President of Synaptic Blue, a Drupal consulting firm, and is extremely active in the Drupal community.  We discuss a variety of aspects of the Drupal community and how it benefits individuals and companies to get involved in the community.

Participants

Michael Hodge Jr - President/Owner at LightSky - @m_hodge

Bruce Clingan - Director of Business Development at LightSky - @astrocling

Doug Vann - President of Synaptic Blue - @dougvann

Comments/Questions

We are doing this podcast for our visitors. If you have any ideas for how we can improve our podcasts, or ideas for future topics please let us know. You can either reach us via email, twitter or in the comments below.

Categories: Software

Drupal Association News: Drupal.org team week notes #29

Drupal Planet - Thu, 2014-08-28 18:48

Better credit for organizations on Drupal.org

We added a feature to projects on Drupal.org to help highlight the contributions made by supporting organizations. Maintainers of distributions, modules, and themes can give credit to organizations that have materially contributed to projects on Drupal.org using the new “Supporting Organizations" field.

If you are a project maintainer, take a moment to give some credit to the organizations that have helped build the Drupal ecosystem.

Drupal Jobs launch

We’re proud to announce the launch of Drupal Jobs, a career site dedicated completely to Drupal. The Drupal job market is hot and we hope this new tool will help match the right talent with the right positions.

For job seekers, you can start searching for positions by location, position, skill level and more. You can create a profile with your job preferences and salary requirements, and even choose whether you wish to be contacted by employers and recruiters. All for free.

For employers and recruiters there are a variety of packages available, giving them the opportunity to highlight their company with a branded page and feature select postings in newsletters and social media. The great thing is that proceeds from postings are invested back into Drupal.org and its subsites (including Drupal Jobs) and community programs.

Upcoming deployments

We are slowly moving towards implementing the new layout for user profiles on Drupal.org. In the coming weeks we will be migrating profile fields to user fields bit by bit. Profile layout will be changing along the way and might look messy at times during migration.

Next week we are planning to deploy software and infrastructure changes to support the new Drupal.org Terms of Service and Privacy Policy. We are going to implement a checkbox on user profiles, so that users could accept the ToS and Privacy Policy, as well as a few other changes.

Previous deployments

Some of the deployments, which happened in the previous two weeks, include:

Thanks to Steven Jones, mallezie, LewisNyman, fizk and jhodgdon for working with us on the issues listed above and making those deployments possible.

Drupal.org infrastructure news

The load balancers are being rebuilt with a new operating system and configuration. These rebuilds bring decreased latency and increased security to our *.drupal.org sites. Since the beginning of August our average latency has decreased from ~1000ms to ~400ms.

More statistics are available from status.devdrupal.org.

Drupal.org web servers have also been upgraded to a 3.14 kernel with the latest grsecurity patch.

There has also been a review of cache values on drupal.org sites.

---
As always, we’d like to say thanks to all volunteers who are working with us and to the Drupal Association Supporters, who made it possible for us to work on these projects.

Cross-posting from g.d.o/drupalorg.

Follow us on Twitter for regular updates: @drupal_org, @drupal_infra

Personal blog tags: week notes
Categories: Software

DrupalCon Amsterdam: Get a status update on Drupal 8 Contribution Modules at DrupalCon Amsterdam

Drupal Planet - Thu, 2014-08-28 11:33

Drupal 8 is slowly approaching. As we all know, the real power in version upgrades lies in the contribution modules. Most of the maintainers are already working on their Drupal 8 ports, but what is their status?

While we would like to give every one of these maintainers their own full session to discuss their modules, they are unfortunately only so many slots available. Not to mention it would take a long time for you to attend all of these talks on top of the various other conference sessions!

Therefore, in order to update the community on the major modules, I have coordinated a double session where each maintainer will present their module’s status. The presentations will be short and focused, freeing you up to enjoy other great conference content.

We will hear about the following modules:

  • Webform (by quicksketch)
  • Rules (by dasjo)
  • Display Suite (by aspilicious)
  • Media (by daveried/slashrsm)
  • Search API (by drunken monkey)
  • Commerce (by bojanz)
  • Redirect, Global Redirect, Token, Pathauto (by berdir)
  • Panels (by populist)
  • Simplenews (by miro_dietiker/ifux)

The session will take place on Tuesday, September 30th from 14:15 - 16:45 (this is two session slots) in the Keynote Auditorium (Wunderkraut Room).

More information

Join us to learn directly from the maintainers what to expect of their Drupal 8 Modules!

--
Michael Schmid (Schnitzel)
DrupalCon Amsterdam Site Building Track Chair

Categories: Software

LevelTen Interactive: Become a ColourLover

Drupal Planet - Thu, 2014-08-28 07:00
become a colour lover

It’s easy to underestimate the impact of web design on business. The look and feel of a site not only communicates the personality of an organization, but it impacts the company’s perceived credibility. Great design provides the right visual experience for the target audience to meet goals and objectives.... Read more

Categories: Software

Mediacurrent: Workflow for Rescuing (really bad) Drupal Installs with SQL

Drupal Planet - Wed, 2014-08-27 22:54
Rescuing Drupal with SQL A strategy for building queries with Inline Views
Categories: Software

Drupal @ Penn State: ELMSLN optimization: Cost and Scale

Drupal Planet - Wed, 2014-08-27 22:40

I did a post the other day about ELMSLN Performance Optimization all about lessons learned and looking at some popular techniques and applying them. These are techniques that can be applied to ANY Drupal (and in many cases non Drupal) application to increase performance. This article looks at the real world price of performance tuning.

Categories: Software

Dries Buytaert: A better runtime for component-based web applications

Drupal Planet - Wed, 2014-08-27 21:53
Topic: DrupalWordpressSoftware development

I have an idea but currently don't have the time or resources to work on it. So I'm sharing the idea here, hoping we can at least discuss it, and maybe someone will even feel inspired to take it on.

The idea is based on two predictions. First, I'm convinced that the future of web sites or web applications is component-based platforms (e.g. Drupal modules, WordPress plugins, etc). Second, I believe that the best way to deploy and use web sites or web applications is through a SaaS hosting environment (e.g. WordPress.com, DrupalGardens, SalesForce's Force.com platform, DemandWare's SaaS platform, etc). Specifically, I believe that in the big picture on-premise software is a "transitional state". It may take another 15 years, but on-premise software will become the exception rather than the standard. Combined, these two predictions present a future where we have component-based platforms running in SaaS environments.

To get the idea, imagine a WordPress.com, SquareSpace, Wix or DrupalGardens where you can install every module/plugin available, including your own custom modules/plugins, instead of being limited to those modules/plugins manually approved by their vendors. This is a big deal because one of the biggest challenges with running web sites or web applications is that almost every user wants to extend or customize the application beyond what is provided out of the box.

Web applications have to be (1) manageable, (2) extensible, (3) customizable and (4) robust. The problem is that we don't have a programming language or an execution runtime that is able to meet all four of these requirements in the context of building and running dynamic component-based applications.

Neither PHP, JavaScript, Ruby, Go or Java allow us to build truly robust applications as the runtimes don't provide proper resource isolation. Often all the components (i.e. Drupal modules, WordPress plugins) run in the same memory space. In the Java world you have Enterprise Java Beans or OSGi which add some level of isolation and management, but it still doesn't provide full component-level isolation or component-level fault containment. As a result, it is required that one component pretty much trusts the other components installed on the system. This means that usually one malfunctioning component can corrupt the other component's data or functional logic, or that one component can harm the performance of the entire platform. In other words, you have to review, certify and test components before installing them on your platform. As a result, most SaaS vendors won't let you install untrusted or custom components.

What we really need here is an execution runtime that allows you to install untrusted components and guarantee application robustness at the same time. Such technology would be a total game-changer as we could build unlimited customizable SaaS platforms that leverage the power of community innovation. You'd be able to install any Drupal module on DrupalGardens, any plugin on WordPress.com or custom code on Squarespace or Wix. It would fundamentally disrupt the entire industry and would help us achieve the assembled web dream.

I've been giving this some thought, and what I think we need is the ability to handle each HTTP request in a micro-kernel-like environment where each software component (i.e. Drupal module, WordPress plugin) runs in its own isolated process or environment and communicates with the other components through a form of inter-process communication (i.e. think remote procedure calls or web service calls). It is a lot harder to implement than it sounds as the inter-process communication could add huge overhead (e.g. we might need fast or clever ways to safely share data between isolated components without having to copy or transfer a lot of data around). Alternatively, virtualization technology like Docker might help us move in this direction as well. Their goal of a lightweight container is a step towards micro-services but it is likely to have more communication overhead. In both scenarios, Drupal would look a lot like a collection of micro web services (Drupal 10 anyone?).

Once we have such a runtime, we can implement and enforce governance and security policies for each component (e.g. limit its memory usage, limit its I/O, security permission, but also control access to the underlying platform like the database). We'd have real component-based isolation along with platform-level governance: (1) manageable, (2) extensible, (3) customizable and (4) robust.

Food for thought and discussion?

Categories: Software

Lullabot: Communication for Distributed Teams

Drupal Planet - Wed, 2014-08-27 19:00

With the birth of the internet, and especially since the early days of open source projects (meaning before the term "open source" was used to describe them), developers have been working together on specific projects as distributed teams of people. In some cases they formed passionate communities, all devoted to a piece of software. Years ago, one of Drupal's taglines was actually "Come for the software, stay for the community." Odd, right?

Categories: Software

Appnovation Technologies: 3 New Drupal Modules Every Company Should Try

Drupal Planet - Wed, 2014-08-27 16:35

Here are the three Drupal modules that I think everyone should give it a try:

 

var switchTo5x = false;stLight.options({"publisher":"dr-75626d0b-d9b4-2fdb-6d29-1a20f61d683"});
Categories: Software

Zivtech: Web Accessibility and Drupal

Drupal Planet - Wed, 2014-08-27 16:01
Web Accessibility and Drupal

With the advent of screen readers, many web users imagined web accessibility to be complete, but there is more to using the web than simply browsing. Whether users require audio assistance in the form of subtitles or visual assistance in the form of screen readers, it is the responsibility of developers and designers to make accessibility integration a key component of their work, thus allowing all users to have the best experience possible.

In this post, we will attempt to gather accessibility information when working with Drupal. While there is a variety of content available on the web, it is important to see how Drupal specifically allows accessibility integration through its many features.

The following is an excerpt from Web AIM's Introduction to Web Accessibility page http://webaim.org/intro/ that neatly outlines some basic accessibility principles.

What is Web Accessibility?

As defined by http://www.w3.org/:

"Web accessibility means that people with disabilities can use the Web. More specifically, Web accessibility means that people with disabilities can perceive, understand, navigate, and interact with the Web, and that they can contribute to the Web. Web accessibility also benefits others, including older people with changing abilities due to aging. Web accessibility encompasses all disabilities that affect access to the Web, including visual, auditory, physical, speech, cognitive, and neurological disabilities. Web accessibility is an aspect of corporate social responsibility. Another important consideration for organizations is that Web accessibility is required by laws and policies in some cases."

Principles of Accessible Design

Below you will find a list of some key principles of accessible design. Most accessibility principles can be implemented very easily and will not impact the overall "look and feel" of your web site.

Provide appropriate alternative text

Alternative text provides a textual alternative to non-text content in web pages. It is especially helpful for people who are blind and rely on a screen reader to have the content of the website read to them.

Provide appropriate document structure

Headings, lists, and other structural elements provide meaning and structure to web pages. They can also facilitate keyboard navigation within the page.

Provide headers for data tables

Tables are used online for layouts and to organize data. Tables that are used to organize tabular data should have appropriate table headers (the element). Data cells should be associated with their appropriate headers, making it easier for screen reader users to navigate and understand the data table.

Ensure users can complete and submit all forms

Ensure that every form element (text field, checkbox, dropdown list, etc.) has a label and make sure that label is associated to the correct form element using the <label> element. Also make sure the user can submit the form and recover from any errors, such as the failure to fill in all required fields.

Ensure links make sense out of context

Every link should make sense if the link text is read by itself. Screen reader users may choose to read only the links on a web page. Certain phrases like "click here" and "more" must be avoided.

Caption and/or provide transcripts for media

Videos and live audio must have captions and a transcript. With archived audio, a transcription may be sufficient.

Ensure accessibility of non-HTML content, including PDF files, Microsoft Word documents, PowerPoint presentations and Adobe Flash content.

In addition to all of the other principles listed here, PDF documents and other non-HTML content must be as accessible as possible. If you cannot make it accessible, consider using HTML instead or, at the very least, provide an accessible alternative. PDF documents should also include a series of tags to make it more accessible. A tagged PDF file looks the same, but it is almost always more accessible to a person using a screen reader.

Allow users to skip repetitive elements on the page

You should provide a method that allows users to skip navigation or other elements that repeat on every page. This is usually accomplished by providing a "Skip to Main Content," or "Skip Navigation" link at the top of the page which jumps to the main content of the page.

Do not rely on color alone to convey meaning

The use of color can enhance comprehension, but do not use color alone to convey information. That information may not be available to a person who is colorblind and will be unavailable to screen reader users.

Make sure content is clearly written and easy to read

There are many ways to make your content easier to understand. Write clearly, use clear fonts, and use headings and lists appropriately.

Make JavaScript accessible

Ensure that JavaScript event handlers are device independent (e.g., they do not require the use of a mouse) and make sure that your page does not rely on JavaScript to function.

Design to Standards

HTML compliant and accessible pages are more robust and provide better search engine optimization. Cascading Style Sheets (CSS) allow you to separate content from presentation. This provides more flexibility and accessibility of your content.

How Does Drupal Support Accessible Design?

Drupal supports web accessibility standards in a number of ways, both through contributed modules and in core. In fact, the Drupal community has made accessibility for visitors, developers, and community members an explicit priority for the Drupal platform, as discussed on Drupal.org. A contributor ensures they have adhered to accessibility standards while developing their modules by appending the D8AX tag https://groups.drupal.org/node/66323 to their project page.This survey shows the importance of such practices as well as providing insightful data from disabled users.

The author of Zen, a Drupal start theme, wrote : “Zen was also one of the first themes to make the D7 Accessibility Pledge. And we stand behind it! #D7AX/#DAX - I pledge to make this theme as accessible as it can be.”

At Zivtech, so do we.

Here we use Bear Skin, which is a starter theme based on Zen. Zen pioneered the navigation “skip link” now found in Drupal 7 core, and it now includes a full compliment of ARIA roles and Sass mixins for the element-invisible (hidden, but accessible) styling.

It is our mission at Zivtech to provide the best, most accessible web experiences to our clients and their customers. Here are ways that you too, can help ensure accessibility is at the forefront of your projects as well.

Tips and Resources General Site Building
  • Source Order
  • tags for images (possibility to tokenize these tags)
  • ARIA Tags (Check ARIA roles - view w3c page - other known as page landmarks)
  • Accessibility tools and best practices for site builders
  • https://drupal.org/node/394094
Theming JS
  • onSubmit, not onClick
  • Focus instead of Hover for functions
Resources Helpful Modules

(Some of these modules are still in development versions, but are relevant to be listed here as production ready versions are in the work)

  • A11y Titles - This module allows site builders to visually hide titles while still allowing “open access” to their web sites by making the titles accessible
  • a11y_checklist - Similar to the SEO Checklist and QA Checklist modules, this module provides a checklist of accessibility-related modules and tasks to perform on a Drupal site.
  • textsize - This module display a adjustable text size changer or a zoom function on the page for a better web accessibility.
  • accessibility - The Accessibility module is a suite of tools for content authors and theme developers to ensure their website is as accessible as possible.
  • semantic fields - Semantic Fields was created to give users the ability of customizing and enhancing the HTML output of a field. With Semantic Fields enabled, users can specify the HTML wrapper element and classes for various elements.
  • semantic views - This Views plugin makes unformatted styles, field row styles and other output more readily configurable without needing to override template files. Instead of overriding row style templates for views where you want to specify different HTML elements (tags) and class attributes, you can specify these inside the Views UI and avoid overriding templates for each view.
  • switch themes - Adds a block to allow users to switch between enabled themes (useful to provide an alternative theme with more contrast for disabled users).
  • pagestyle - This module display a style changer on the page and in the browser menu for a better web accessibility.
  • eim - Extend the image module.

             Extended functionalities

                 - Adds checkboxes for the fields of image editing forms by content type.

                        - Alt field required

                        - Title field required

                 - Sets the Alt field maxlength value to 128 for editing forms of nodes.
  • youtube player accessibility controls - This module integrate YouTube Video Player Accessible Controls library which add buttons to control YouTube videos
  • universal subtitles - This module adds support for subtitled videos by the Universal Subtitles provider
Screen readers and emulators (testing and troubleshooting)

http://warc.calpoly.edu/accessibility/compliance_process_guide.html

http://webstyleguide.com/wsg3/1-process/7-development-process.html

Terms: Drupal Planetweb accessibilityaccessibility
Categories: Software

Zivtech: Web Accessibility and Drupal

Drupal Planet - Wed, 2014-08-27 16:01
Web Accessibility and Drupal

With the advent of screen readers, many web users imagined web accessibility to be complete, but there is more to using the web than simply browsing. Whether users require audio assistance in the form of subtitles or visual assistance in the form of screen readers, it is the responsibility of developers and designers to make accessibility integration a key component of their work, thus allowing all users to have the best experience possible.

In this post, we will attempt to gather accessibility information when working with Drupal. While there is a variety of content available on the web, it is important to see how Drupal specifically allows accessibility integration through its many features.

The following is an excerpt from Web AIM's Introduction to Web Accessibility page http://webaim.org/intro/ that neatly outlines some basic accessibility principles.

What is Web Accessibility?

As defined by http://www.w3.org/:

"Web accessibility means that people with disabilities can use the Web. More specifically, Web accessibility means that people with disabilities can perceive, understand, navigate, and interact with the Web, and that they can contribute to the Web. Web accessibility also benefits others, including older people with changing abilities due to aging. Web accessibility encompasses all disabilities that affect access to the Web, including visual, auditory, physical, speech, cognitive, and neurological disabilities. Web accessibility is an aspect of corporate social responsibility. Another important consideration for organizations is that Web accessibility is required by laws and policies in some cases."

Principles of Accessible Design

Below you will find a list of some key principles of accessible design. Most accessibility principles can be implemented very easily and will not impact the overall "look and feel" of your web site.

Provide appropriate alternative text

Alternative text provides a textual alternative to non-text content in web pages. It is especially helpful for people who are blind and rely on a screen reader to have the content of the website read to them.

Provide appropriate document structure

Headings, lists, and other structural elements provide meaning and structure to web pages. They can also facilitate keyboard navigation within the page.

Provide headers for data tables

Tables are used online for layouts and to organize data. Tables that are used to organize tabular data should have appropriate table headers (the element). Data cells should be associated with their appropriate headers, making it easier for screen reader users to navigate and understand the data table.

Ensure users can complete and submit all forms

Ensure that every form element (text field, checkbox, dropdown list, etc.) has a label and make sure that label is associated to the correct form element using the <label> element. Also make sure the user can submit the form and recover from any errors, such as the failure to fill in all required fields.

Ensure links make sense out of context

Every link should make sense if the link text is read by itself. Screen reader users may choose to read only the links on a web page. Certain phrases like "click here" and "more" must be avoided.

Caption and/or provide transcripts for media

Videos and live audio must have captions and a transcript. With archived audio, a transcription may be sufficient.

Ensure accessibility of non-HTML content, including PDF files, Microsoft Word documents, PowerPoint presentations and Adobe Flash content.

In addition to all of the other principles listed here, PDF documents and other non-HTML content must be as accessible as possible. If you cannot make it accessible, consider using HTML instead or, at the very least, provide an accessible alternative. PDF documents should also include a series of tags to make it more accessible. A tagged PDF file looks the same, but it is almost always more accessible to a person using a screen reader.

Allow users to skip repetitive elements on the page

You should provide a method that allows users to skip navigation or other elements that repeat on every page. This is usually accomplished by providing a "Skip to Main Content," or "Skip Navigation" link at the top of the page which jumps to the main content of the page.

Do not rely on color alone to convey meaning

The use of color can enhance comprehension, but do not use color alone to convey information. That information may not be available to a person who is colorblind and will be unavailable to screen reader users.

Make sure content is clearly written and easy to read

There are many ways to make your content easier to understand. Write clearly, use clear fonts, and use headings and lists appropriately.

Make JavaScript accessible

Ensure that JavaScript event handlers are device independent (e.g., they do not require the use of a mouse) and make sure that your page does not rely on JavaScript to function.

Design to Standards

HTML compliant and accessible pages are more robust and provide better search engine optimization. Cascading Style Sheets (CSS) allow you to separate content from presentation. This provides more flexibility and accessibility of your content.

How Does Drupal Support Accessible Design?

Drupal supports web accessibility standards in a number of ways, both through contributed modules and in core. In fact, the Drupal community has made accessibility for visitors, developers, and community members an explicit priority for the Drupal platform, as discussed on Drupal.org. A contributor ensures they have adhered to accessibility standards while developing their modules by appending the D8AX tag https://groups.drupal.org/node/66323 to their project page.This survey shows the importance of such practices as well as providing insightful data from disabled users.

The author of Zen, a Drupal start theme, wrote : “Zen was also one of the first themes to make the D7 Accessibility Pledge. And we stand behind it! #D7AX/#DAX - I pledge to make this theme as accessible as it can be.”

At Zivtech, so do we.

Here we use Bear Skin, which is a starter theme based on Zen. Zen pioneered the navigation “skip link” now found in Drupal 7 core, and it now includes a full compliment of ARIA roles and Sass mixins for the element-invisible (hidden, but accessible) styling.

It is our mission at Zivtech to provide the best, most accessible web experiences to our clients and their customers. Here are ways that you too, can help ensure accessibility is at the forefront of your projects as well.

Tips and Resources General Site Building
  • Source Order
  • tags for images (possibility to tokenize these tags)
  • ARIA Tags (Check ARIA roles - view w3c page - other known as page landmarks)
  • Accessibility tools and best practices for site builders
  • https://drupal.org/node/394094
Theming JS
  • onSubmit, not onClick
  • Focus instead of Hover for functions
Resources Helpful Modules

(Some of these modules are still in development versions, but are relevant to be listed here as production ready versions are in the work)

  • A11y Titles - This module allows site builders to visually hide titles while still allowing “open access” to their web sites by making the titles accessible
  • a11y_checklist - Similar to the SEO Checklist and QA Checklist modules, this module provides a checklist of accessibility-related modules and tasks to perform on a Drupal site.
  • textsize - This module display a adjustable text size changer or a zoom function on the page for a better web accessibility.
  • accessibility - The Accessibility module is a suite of tools for content authors and theme developers to ensure their website is as accessible as possible.
  • semantic fields - Semantic Fields was created to give users the ability of customizing and enhancing the HTML output of a field. With Semantic Fields enabled, users can specify the HTML wrapper element and classes for various elements.
  • semantic views - This Views plugin makes unformatted styles, field row styles and other output more readily configurable without needing to override template files. Instead of overriding row style templates for views where you want to specify different HTML elements (tags) and class attributes, you can specify these inside the Views UI and avoid overriding templates for each view.
  • switch themes - Adds a block to allow users to switch between enabled themes (useful to provide an alternative theme with more contrast for disabled users).
  • pagestyle - This module display a style changer on the page and in the browser menu for a better web accessibility.
  • eim - Extend the image module.

             Extended functionalities

                 - Adds checkboxes for the fields of image editing forms by content type.

                        - Alt field required

                        - Title field required

                 - Sets the Alt field maxlength value to 128 for editing forms of nodes.
  • youtube player accessibility controls - This module integrate YouTube Video Player Accessible Controls library which add buttons to control YouTube videos
  • universal subtitles - This module adds support for subtitled videos by the Universal Subtitles provider
Screen readers and emulators (testing and troubleshooting)

http://warc.calpoly.edu/accessibility/compliance_process_guide.html

http://webstyleguide.com/wsg3/1-process/7-development-process.html

Terms: Drupal Planetweb accessibilityaccessibility
Categories: Software

DrupalCon Amsterdam: Training spotlight: Search API with Apache Solr

Drupal Planet - Wed, 2014-08-27 12:45

Learn how to build powerful Solr-based interfaces without writing code in Search API with ApacheSolr, an intermediate-level training provided by Zivtech at DrupalCon Amsterdam.

The team at Zivtech have developed open source tools which make setting up ApacheSolr instances and Search API configurations a breeze.

Instructor Jody Hamilton will walk you through set up and will introduce you to these tools at the beginning of the training, ensuring everyone quickly has a working ApacheSolr instance on a local sandbox site. Together you will build Views with Search API, and add and configure facets with Facet API. Students will use drush to work with with the search index, and finally the class will look at how you can improve search results relevancy and add custom fields to the index with a custom module.

Meet the Trainer from Zivtech

Jody Hamilton (Jody Lynn) is Co-Founder / CTO at Zivtech and has been giving public and private Drupal trainings for 6 years, including at the past 4 US DrupalCons.

Attend this Drupal Training

This training will be held on Monday, 29 September from 09:00-17:00 at the Amsterdam RAI during DrupalCon Amsterdam. The cost of attending this training is €400 and includes training materials, meals and coffee breaks. A DrupalCon ticket is not required to register to attend this event.

Our training courses are designed to be small enough to provide attendees plenty of one-on-one time with the instructor, but large enough that they are a good use of the instructor's time. Each training course must meet its minimum sign-up number by 5 September in order for the course to take place. You can help to ensure your training course takes place by registering before this date and reminding friends and colleagues to attend.

Register today

Categories: Software

Drupal core announcements: Nine days of hands-on sprinting opportunities at DrupalCon Amsterdam

Drupal Planet - Wed, 2014-08-27 12:33

DrupalCon Amsterdam community sprints are starting in just one month from today. We have a great tradition to organize sprinting opportunities throughout DrupalCon days and also the weekends before and after. If you have been to them, you know the power of these events, but if you are new to our sprints, here are some quotes from an earlier sprint at Drupal Dev Days Szeged:

Two days working with the Drupal Community [...] help you to learn more than one week working alone at home :) -- https://twitter.com/javisr/statuses/449159591373586432

Greatest thing about code sprints: Hearing respected core devs say "I don't understand that." "Me neither." We all learn. [...] -- https://twitter.com/marcvangend/statuses/449442724966858752

Drupal sprints are a wonderful combination of a lot of top Drupal developers working on important problems in the same space without other distractions going on. We even secured a wonderful sprint location for the weekends, the Berlage Workspace. You can help move important issues forward and learn the tricky details faster than anybody else while working with others.


Berlage Workspace street front

Sprints announced so far include frontend, drupal.org, search API, multilingual, Behavior Driven Development, Panopoly, Rules in Drupal 8, Media in Drupal 8, Migration to Drupal 8, Content staging in Drupal 8 and a dedicated group of people driving critical Drupal 8 issues in general. Each team is being lead by Drupal topic experts so you can work with the top people in the field.

The most active days expected in decreasing order are Friday, Monday and Sunday before and Saturday after, but sprinting opportunities are almost always available throughout the nine days. We even created a Google Calendar that you can subscribe to (4j8sqq5fphhpgmrtfl8t2ggkes@group.calendar.google.com) which contains all the sprint venue information at any point in time, so you know where to find active Drupal sprinters. Or just check out the announcement for more information.

The sprints would not happen without the sponsorship of the Drupal Association, Acquia and Open8. Huge thanks for their support!

Categories: Software

Acquia: Ultimate Guide to Drupal 8: Episode 6 - New Back-End Features in Drupal 8

Drupal Planet - Wed, 2014-08-27 09:20

Welcome to the 6th installment of an 8-part blog series we're calling "The Ultimate Guide to Drupal 8." Whether you're a site builder, module or theme developer, or simply an end-user of a Drupal website, Drupal 8 has tons in store for you! This blog series will attempt to enumerate the major changes in Drupal 8.

Categories: Software

Modules Unraveled: 116 What's new in D8 with larowlan - Modules Unraveled Podcast

Drupal Planet - Wed, 2014-08-27 07:00
Photo of Lee RowlandsPublished: Wed, 08/27/14Download this episodeNew stuff in Drupal 8
  • Twig autoescape
  • Security improvements
  • Cleanup around Entity
  • kerneltestbaseng
  • mink test base
DrupalUpgrade.info
  • What’s the story behind DrupalUpgrade.info?
  • What are the plans for drupalupgrade.info?
  • How can people get involved with this?
Drupal Module Upgrader
  • What is the Drupal Module Upgrader?
  • How does it work?
  • Is it perfect?
PatchADay
  • What is #PatchADay?
Questions from Twitter
  • Chris Weber asks:
    • What's your favorite way to get an autoloader working with Drupal 7?
    • Talk about Drupal 8 menu system.
    • Will it be possible to export/import content?
Episode Links: Lee on drupal.orgLee on Twitterlarowlan on IRCDrupalUpgrade.info on GitHubDrupal 8 now blog posts on PreviousNext.com.auMenu Block in core patchDefault Content ModuleTags: Drupal 8Drupal CoreDevelopmentplanet-drupal
Categories: Software

Pages