ARIA can be used to make web applications accessible to people with disabilities. This presentation gives an overview of ARIA, how it works and some rules to stick to to get things to work properly
Rich Internet Applications - How to Make them AccessibleDylan Barrell
Making rich internet applications accessible has been made easier through the introduction and support of WAI-ARIA. This presentation provides and introduction to WAI-ARIA and how to successfully use it to make interactive web applications accessible
Accessible Web Components_Techshare India 2014BarrierBreak
Presented by Nawaz Khan - Accessibility Evangilist and Srinivasu Chakravarthula - Sr. Accessibility Program Lead, Customer Quality & Engg Services, PayPal at Techshare India 2014.
Many accessibility techniques are existing for which there is much lesser innovation for now. PayPal wanted to bring in some of the innovative things for some existing web components. The main objective of the presentation was to "Show audience how to create accessible web components"
No other CMS offers more flexibility then Drupal. If you need to implement a piece of functionality or change a piece of data, there are a million different ways you can go about it. However, this flexibility can also be daunting and frustrating. How do you know if you are going about your changes the “right way”?
The truth of the matter is that there is no “right way” - just the “right for me” way. Any method you choose will come with it’s own sets of drawbacks and benefits.
One of the most common elements manipulated in Drupal are menu items. Changing destinations, titles, styling, display and order, there are many ways a menu item may be altered and many ways to going about doing so.
In this session we will demonstrate the flexibility of Drupal by going over 9 different ways (across Drupal 7 and Drupal 8) that a menu item could be manipulated. From a backend only solution to a front-end only solution, a “Drupal friendly” way to a “hacky” way, using a contrib module to writing a custom module. This session will demonstrate how to implement each one and outline their individual pros and cons.
netmind - Primer Contacto con el Desarrollo de Aplicaciones para Windows 8netmind
The document discusses Windows 8 app development. It covers topics like the Windows 8 platform and tools, UI controls like AppBar and FlipView, semantic zoom and grouping in ListView, contracts, notifications, publishing to the Windows Store, and key development points. Visual Studio 2012 is introduced as the development tool. Code examples are provided for various controls and concepts.
Separating enterprise social apps from platformsLee Bryant
Headshift is a social business consultancy that helps integrate enterprise applications with social platforms. They observe how people collaborate and take actions across systems to build "situated apps" that address specific use cases. This separates apps from platforms and leverages capabilities of both social tools and existing enterprise systems. Connectors allow apps to be built on Socialtext and connect to systems like Microsoft SharePoint and databases. This creates an important new technology layer in the enterprise architecture - the social layer.
Ramp Up Your Web Experiences Using Drupal and Apache Solrlucenerevolution
Presented by Peter Wolanin, Momentum Specialist, Acquia, Inc.
Drupal and Apache Solr search are a potent combination in the move towards "digital experiences" online. It is behind a growing number of customized, personalized enterprise platforms for eCommerce, healthcare, physical retail and more. Drupal powers a growing portion of the web, and has been adopted especially by governments around the world, the music industry, media organizations, and retailers. If you have a new web project or and existing Drupal site, the combination of Drupal and Apache Solr is both powerful and easy to set up. The indexing workflow built into the Drupal integration module provides a broad range of automatic facets based on data fields on the Drupal content defined by site administrators. Drupal facilitates further customizations of the UI, indexing, custom facets, and boosting because of an open architecture that provides multiple opportunities for a minimal amount of custom code to alter the behavior. This session will provide a high-level overview of how the Drupal integration works, a tour of the UI configuration options, a few code snippets, and examples of successful Drupal sites using Apache Solr for search.
Reaching Corporate Australia with a Business CaseAccess iQ
Vivienne Conway and Natalie Collins talk through how web accessibility practitioners can encourage Australian businesses to embrace WCAG 2.0 through providing them with a business case.
Rich Internet Applications - How to Make them AccessibleDylan Barrell
Making rich internet applications accessible has been made easier through the introduction and support of WAI-ARIA. This presentation provides and introduction to WAI-ARIA and how to successfully use it to make interactive web applications accessible
Accessible Web Components_Techshare India 2014BarrierBreak
Presented by Nawaz Khan - Accessibility Evangilist and Srinivasu Chakravarthula - Sr. Accessibility Program Lead, Customer Quality & Engg Services, PayPal at Techshare India 2014.
Many accessibility techniques are existing for which there is much lesser innovation for now. PayPal wanted to bring in some of the innovative things for some existing web components. The main objective of the presentation was to "Show audience how to create accessible web components"
No other CMS offers more flexibility then Drupal. If you need to implement a piece of functionality or change a piece of data, there are a million different ways you can go about it. However, this flexibility can also be daunting and frustrating. How do you know if you are going about your changes the “right way”?
The truth of the matter is that there is no “right way” - just the “right for me” way. Any method you choose will come with it’s own sets of drawbacks and benefits.
One of the most common elements manipulated in Drupal are menu items. Changing destinations, titles, styling, display and order, there are many ways a menu item may be altered and many ways to going about doing so.
In this session we will demonstrate the flexibility of Drupal by going over 9 different ways (across Drupal 7 and Drupal 8) that a menu item could be manipulated. From a backend only solution to a front-end only solution, a “Drupal friendly” way to a “hacky” way, using a contrib module to writing a custom module. This session will demonstrate how to implement each one and outline their individual pros and cons.
netmind - Primer Contacto con el Desarrollo de Aplicaciones para Windows 8netmind
The document discusses Windows 8 app development. It covers topics like the Windows 8 platform and tools, UI controls like AppBar and FlipView, semantic zoom and grouping in ListView, contracts, notifications, publishing to the Windows Store, and key development points. Visual Studio 2012 is introduced as the development tool. Code examples are provided for various controls and concepts.
Separating enterprise social apps from platformsLee Bryant
Headshift is a social business consultancy that helps integrate enterprise applications with social platforms. They observe how people collaborate and take actions across systems to build "situated apps" that address specific use cases. This separates apps from platforms and leverages capabilities of both social tools and existing enterprise systems. Connectors allow apps to be built on Socialtext and connect to systems like Microsoft SharePoint and databases. This creates an important new technology layer in the enterprise architecture - the social layer.
Ramp Up Your Web Experiences Using Drupal and Apache Solrlucenerevolution
Presented by Peter Wolanin, Momentum Specialist, Acquia, Inc.
Drupal and Apache Solr search are a potent combination in the move towards "digital experiences" online. It is behind a growing number of customized, personalized enterprise platforms for eCommerce, healthcare, physical retail and more. Drupal powers a growing portion of the web, and has been adopted especially by governments around the world, the music industry, media organizations, and retailers. If you have a new web project or and existing Drupal site, the combination of Drupal and Apache Solr is both powerful and easy to set up. The indexing workflow built into the Drupal integration module provides a broad range of automatic facets based on data fields on the Drupal content defined by site administrators. Drupal facilitates further customizations of the UI, indexing, custom facets, and boosting because of an open architecture that provides multiple opportunities for a minimal amount of custom code to alter the behavior. This session will provide a high-level overview of how the Drupal integration works, a tour of the UI configuration options, a few code snippets, and examples of successful Drupal sites using Apache Solr for search.
Reaching Corporate Australia with a Business CaseAccess iQ
Vivienne Conway and Natalie Collins talk through how web accessibility practitioners can encourage Australian businesses to embrace WCAG 2.0 through providing them with a business case.
Dynamic and accessible web content with WAI-ARIAAccess iQ
WAI-ARIA provides roles, states, and properties that can be added to HTML and dynamic content with JavaScript to make it more accessible to assistive technologies like screen readers, as it allows things like widgets, dynamic content, and interactive elements to be understood out of context. It includes roles for common interface elements, document structures, and landmarks to aid navigation, as well as states, properties, and other attributes to describe objects and make content more accessible when used properly. The document outlines the problem WAI-ARIA solves, provides examples of its usage, and recommends resources for further information.
The Inclusive Web: hands-on with HTML5 and jQuerycolinbdclark
Driven by technologies such as HTML5, JavaScript, and jQuery, innovative new user experiences are thriving on the Web. This workshop, presented by Justin Obara and Colin Clark from the Fluid community (http://fluidproject.org), will provide Web designers and developers with an overview of modern Web accessibility techniques, providing hands-on ways to make HTML5 and jQuery-based applications more accessible, flexible, and inclusive of a diverse range of users. We’ll also cover some of the features of Fluid Infusion, an application framework built on top of jQuery.
jQuery Mobile is a framework for building mobile web sites and apps. It uses progressive enhancement to work across mobile device platforms. Key components include pages for content, navigation via AJAX, and widgets like lists, forms, buttons. Formatting options allow for grids, collapsibles. Events support touch and orientation changes. The framework configures default styles and provides methods to programmatically control pages and components.
ARIA (Accessible Rich Internet Applications) allows developers to build accessibility into modern web applications. It defines ways to make web content and applications more accessible to users of assistive technologies like screen readers. ARIA works alongside HTML to specify roles, states, and properties that improve semantics. While ARIA enhances accessibility, it does not solve all issues and proper testing is still required. The WAI-ARIA Authoring Practices document provides best practices for implementing different interactive components.
HTML5 and the dawn of rich mobile web applications pt 2James Pearce
This document discusses jQuery Mobile and Sencha Touch, which are frameworks for building rich mobile web applications. It provides an overview of key features of each framework.
jQuery Mobile is built on jQuery and uses a modular library approach with markup-driven configuration. It supports features like progressive enhancement, pages, transitions between pages, disabling AJAX loading, back buttons, themes, toolbars, footers, buttons, lists, forms, and touch events.
Sencha Touch is a JavaScript framework that supports components, data access and MVC patterns, forms, scrolling, touch events, theming, and charts. It uses an application architecture with stores, models, and views. It supports common UI elements like lists, nested
The document discusses accessibility features in HTML5 forms, including:
- Landmark roles that help users navigate forms, like banner, main, navigation etc.
- ARIA roles and properties that make forms more accessible when semantics are unclear
- Live regions that allow updating parts of forms without refreshing the whole page
- New form input types like date, time, email etc. that are more usable for users of assistive technologies
- Attributes like required, pattern, min/max that provide constraints for form values
This document discusses jQuery UI and plugins. It provides an overview of jQuery UI classes that can be used to style elements. It also demonstrates several common jQuery UI widgets like buttons, accordions, dialogs, and tabs. The document discusses jQuery UI effects for animations and transitions. It provides tips for identifying good plugins based on aspects like their API, documentation, support, and community. Overall, the document is an introduction to using jQuery UI and evaluating jQuery plugins.
The document is a presentation on Web Components. It introduces Web Components as a standardized set of browser APIs that allow defining custom HTML elements. It provides an example of creating a tooltip using Web Components. It then discusses benefits like maintainability, reusability and encapsulation. The presentation compares Web Components to frameworks like React and Vue, noting they are not directly comparable. It demonstrates using Web Components to build interactive tabs. Finally, it discusses key Web Component APIs like shadow DOM, custom elements and HTML templates.
The FamilySearch Reference Client is an open-source implementation of the Family Tree user interface that was developed to:
1) Make it easy for partners to access the FamilySearch tree using an extensible framework
2) Provide reusable components for partners to use
3) Demonstrate how to access the FamilySearch Tree using the Javascript SDK
JQuery Flot is a charting library that allows creating line, bar, and pie charts. It works across many browsers from IE6+ and has plugins for additional chart types. The document discusses using Flot to display time-series data with tabs, radio buttons, and tooltips. Code examples are provided for building the charts, handling interactions, and blocking elements to indicate loading.
This document provides an overview of jQuery 3 and how to use it to manipulate DOM elements. It begins with basic selectors and hierarchical selectors. It then covers manipulating matched elements through functions like html(), addClass(), and click handlers. More advanced topics covered include attribute selectors, form element selectors, and positional selectors. The document demonstrates how to select elements, set properties, register event handlers, and provides examples of manipulating DOM elements with jQuery. It concludes with a discussion of advanced operators and cross-browser event handling.
The document discusses Ruby gems and plugins. It provides an overview of what gems are, how the RubyGems package manager works to distribute and install gems, and some of the benefits of using gems. It then profiles several popular gems, describing their functionality and how they can be used. These include gems for authentication, pagination, file attachments, testing, scheduling tasks, and more. Lastly, it lists the authors of some "über-gems" and provides brief biographies.
Last year, AOL adopted a new content strategy and has positioned itself as a premier destination for original content. Core to this strategy is having reusable, highly efficient and optimized common code and experiences at scale, which is where jQuery comes in. Check in with Dave Artz to see how jQuery has helped his front-end standards team tackle unique challenges like optimizing 3rd party widget performance, overriding plugin functionality, and managing dependencies and updates across 100+ sites spanning multiple back-end platforms.
London React April- r3t & a11y : This is for everyone , Shaun Dunne.React London Community
Accessibility is often treated like a 'nice to have' or a feature, but it need not be that way. We're entering an era of custom and reusable web components where we can step away from using only what the browser vendors will give us and create our own encapsulated components to do and act the way we want them too, but we need to take a step back and ensure that our components can live happily on a platform that is accessed by 40% of the worlds population. React loves Accessibility and its not difficult to add, lets have a look how and why
This document discusses ARIA (Accessible Rich Internet Applications) with KISSY, an open source JavaScript library. It provides an introduction to WAI ARIA, essential ARIA roles and states, and how ARIA is implemented with common KISSY widgets like Overlay, MenuButton, Tabs, and Carousel. Key aspects covered include applying appropriate ARIA roles, setting states and properties, managing keyboard focus and navigation, and keeping ARIA in sync with widget logic. Tools for testing accessibility are also listed.
Making your jQuery Plugins More Accessiblecolinbdclark
An accessibility primer for jQuery developers. This presentation covered teaches how to make widgets and plugins navigable with the keyboard, as well as support for assistive technologies with ARIA.
Presented at the 2009 jQuery Conference in Boston.
WAI-ARIA An introduction to Accessible Rich Internet Applications / AccessU 2018Patrick Lauke
This document provides an introduction to Accessible Rich Internet Applications (WAI-ARIA). It discusses the need for ARIA to make complex web applications accessible, common ARIA roles and attributes, and best practices for using ARIA. Key points include: ARIA defines roles, states and properties to convey semantics to assistive technologies; common roles include buttons, toggles, and landmarks; and the five rules of ARIA use emphasize using native HTML when possible and ensuring interactive elements are keyboard accessible.
This document discusses principles for improving modularity and maintainability through a layered data model approach. It recommends removing hard-coded dependencies and using a service manager to dynamically resolve components. Entities should represent data and focus only on their own tasks while abstracting away data storage details. A layered approach separates concerns with entities at the top holding information, tables handling storage operations, table gateways acting as the database interface, and hydrators mapping between objects and data. Together this improves reusability, flexibility and maintainability of the system.
The document discusses best practices and anti-patterns for Django projects. It recommends keeping projects simple by avoiding over-engineering, using application-based modular design, and properly structuring settings files across multiple environments rather than relying on local_settings.py files. It also addresses common issues like import errors caused by PYTHONPATH configuration.
Dynamic and accessible web content with WAI-ARIAAccess iQ
WAI-ARIA provides roles, states, and properties that can be added to HTML and dynamic content with JavaScript to make it more accessible to assistive technologies like screen readers, as it allows things like widgets, dynamic content, and interactive elements to be understood out of context. It includes roles for common interface elements, document structures, and landmarks to aid navigation, as well as states, properties, and other attributes to describe objects and make content more accessible when used properly. The document outlines the problem WAI-ARIA solves, provides examples of its usage, and recommends resources for further information.
The Inclusive Web: hands-on with HTML5 and jQuerycolinbdclark
Driven by technologies such as HTML5, JavaScript, and jQuery, innovative new user experiences are thriving on the Web. This workshop, presented by Justin Obara and Colin Clark from the Fluid community (http://fluidproject.org), will provide Web designers and developers with an overview of modern Web accessibility techniques, providing hands-on ways to make HTML5 and jQuery-based applications more accessible, flexible, and inclusive of a diverse range of users. We’ll also cover some of the features of Fluid Infusion, an application framework built on top of jQuery.
jQuery Mobile is a framework for building mobile web sites and apps. It uses progressive enhancement to work across mobile device platforms. Key components include pages for content, navigation via AJAX, and widgets like lists, forms, buttons. Formatting options allow for grids, collapsibles. Events support touch and orientation changes. The framework configures default styles and provides methods to programmatically control pages and components.
ARIA (Accessible Rich Internet Applications) allows developers to build accessibility into modern web applications. It defines ways to make web content and applications more accessible to users of assistive technologies like screen readers. ARIA works alongside HTML to specify roles, states, and properties that improve semantics. While ARIA enhances accessibility, it does not solve all issues and proper testing is still required. The WAI-ARIA Authoring Practices document provides best practices for implementing different interactive components.
HTML5 and the dawn of rich mobile web applications pt 2James Pearce
This document discusses jQuery Mobile and Sencha Touch, which are frameworks for building rich mobile web applications. It provides an overview of key features of each framework.
jQuery Mobile is built on jQuery and uses a modular library approach with markup-driven configuration. It supports features like progressive enhancement, pages, transitions between pages, disabling AJAX loading, back buttons, themes, toolbars, footers, buttons, lists, forms, and touch events.
Sencha Touch is a JavaScript framework that supports components, data access and MVC patterns, forms, scrolling, touch events, theming, and charts. It uses an application architecture with stores, models, and views. It supports common UI elements like lists, nested
The document discusses accessibility features in HTML5 forms, including:
- Landmark roles that help users navigate forms, like banner, main, navigation etc.
- ARIA roles and properties that make forms more accessible when semantics are unclear
- Live regions that allow updating parts of forms without refreshing the whole page
- New form input types like date, time, email etc. that are more usable for users of assistive technologies
- Attributes like required, pattern, min/max that provide constraints for form values
This document discusses jQuery UI and plugins. It provides an overview of jQuery UI classes that can be used to style elements. It also demonstrates several common jQuery UI widgets like buttons, accordions, dialogs, and tabs. The document discusses jQuery UI effects for animations and transitions. It provides tips for identifying good plugins based on aspects like their API, documentation, support, and community. Overall, the document is an introduction to using jQuery UI and evaluating jQuery plugins.
The document is a presentation on Web Components. It introduces Web Components as a standardized set of browser APIs that allow defining custom HTML elements. It provides an example of creating a tooltip using Web Components. It then discusses benefits like maintainability, reusability and encapsulation. The presentation compares Web Components to frameworks like React and Vue, noting they are not directly comparable. It demonstrates using Web Components to build interactive tabs. Finally, it discusses key Web Component APIs like shadow DOM, custom elements and HTML templates.
The FamilySearch Reference Client is an open-source implementation of the Family Tree user interface that was developed to:
1) Make it easy for partners to access the FamilySearch tree using an extensible framework
2) Provide reusable components for partners to use
3) Demonstrate how to access the FamilySearch Tree using the Javascript SDK
JQuery Flot is a charting library that allows creating line, bar, and pie charts. It works across many browsers from IE6+ and has plugins for additional chart types. The document discusses using Flot to display time-series data with tabs, radio buttons, and tooltips. Code examples are provided for building the charts, handling interactions, and blocking elements to indicate loading.
This document provides an overview of jQuery 3 and how to use it to manipulate DOM elements. It begins with basic selectors and hierarchical selectors. It then covers manipulating matched elements through functions like html(), addClass(), and click handlers. More advanced topics covered include attribute selectors, form element selectors, and positional selectors. The document demonstrates how to select elements, set properties, register event handlers, and provides examples of manipulating DOM elements with jQuery. It concludes with a discussion of advanced operators and cross-browser event handling.
The document discusses Ruby gems and plugins. It provides an overview of what gems are, how the RubyGems package manager works to distribute and install gems, and some of the benefits of using gems. It then profiles several popular gems, describing their functionality and how they can be used. These include gems for authentication, pagination, file attachments, testing, scheduling tasks, and more. Lastly, it lists the authors of some "über-gems" and provides brief biographies.
Last year, AOL adopted a new content strategy and has positioned itself as a premier destination for original content. Core to this strategy is having reusable, highly efficient and optimized common code and experiences at scale, which is where jQuery comes in. Check in with Dave Artz to see how jQuery has helped his front-end standards team tackle unique challenges like optimizing 3rd party widget performance, overriding plugin functionality, and managing dependencies and updates across 100+ sites spanning multiple back-end platforms.
London React April- r3t & a11y : This is for everyone , Shaun Dunne.React London Community
Accessibility is often treated like a 'nice to have' or a feature, but it need not be that way. We're entering an era of custom and reusable web components where we can step away from using only what the browser vendors will give us and create our own encapsulated components to do and act the way we want them too, but we need to take a step back and ensure that our components can live happily on a platform that is accessed by 40% of the worlds population. React loves Accessibility and its not difficult to add, lets have a look how and why
This document discusses ARIA (Accessible Rich Internet Applications) with KISSY, an open source JavaScript library. It provides an introduction to WAI ARIA, essential ARIA roles and states, and how ARIA is implemented with common KISSY widgets like Overlay, MenuButton, Tabs, and Carousel. Key aspects covered include applying appropriate ARIA roles, setting states and properties, managing keyboard focus and navigation, and keeping ARIA in sync with widget logic. Tools for testing accessibility are also listed.
Making your jQuery Plugins More Accessiblecolinbdclark
An accessibility primer for jQuery developers. This presentation covered teaches how to make widgets and plugins navigable with the keyboard, as well as support for assistive technologies with ARIA.
Presented at the 2009 jQuery Conference in Boston.
WAI-ARIA An introduction to Accessible Rich Internet Applications / AccessU 2018Patrick Lauke
This document provides an introduction to Accessible Rich Internet Applications (WAI-ARIA). It discusses the need for ARIA to make complex web applications accessible, common ARIA roles and attributes, and best practices for using ARIA. Key points include: ARIA defines roles, states and properties to convey semantics to assistive technologies; common roles include buttons, toggles, and landmarks; and the five rules of ARIA use emphasize using native HTML when possible and ensuring interactive elements are keyboard accessible.
This document discusses principles for improving modularity and maintainability through a layered data model approach. It recommends removing hard-coded dependencies and using a service manager to dynamically resolve components. Entities should represent data and focus only on their own tasks while abstracting away data storage details. A layered approach separates concerns with entities at the top holding information, tables handling storage operations, table gateways acting as the database interface, and hydrators mapping between objects and data. Together this improves reusability, flexibility and maintainability of the system.
The document discusses best practices and anti-patterns for Django projects. It recommends keeping projects simple by avoiding over-engineering, using application-based modular design, and properly structuring settings files across multiple environments rather than relying on local_settings.py files. It also addresses common issues like import errors caused by PYTHONPATH configuration.
Ivanti’s Patch Tuesday breakdown goes beyond patching your applications and brings you the intelligence and guidance needed to prioritize where to focus your attention first. Catch early analysis on our Ivanti blog, then join industry expert Chris Goettl for the Patch Tuesday Webinar Event. There we’ll do a deep dive into each of the bulletins and give guidance on the risks associated with the newly-identified vulnerabilities.
Best 20 SEO Techniques To Improve Website Visibility In SERPPixlogix Infotech
Boost your website's visibility with proven SEO techniques! Our latest blog dives into essential strategies to enhance your online presence, increase traffic, and rank higher on search engines. From keyword optimization to quality content creation, learn how to make your site stand out in the crowded digital landscape. Discover actionable tips and expert insights to elevate your SEO game.
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-und-domino-lizenzkostenreduzierung-in-der-welt-von-dlau/
DLAU und die Lizenzen nach dem CCB- und CCX-Modell sind für viele in der HCL-Community seit letztem Jahr ein heißes Thema. Als Notes- oder Domino-Kunde haben Sie vielleicht mit unerwartet hohen Benutzerzahlen und Lizenzgebühren zu kämpfen. Sie fragen sich vielleicht, wie diese neue Art der Lizenzierung funktioniert und welchen Nutzen sie Ihnen bringt. Vor allem wollen Sie sicherlich Ihr Budget einhalten und Kosten sparen, wo immer möglich. Das verstehen wir und wir möchten Ihnen dabei helfen!
Wir erklären Ihnen, wie Sie häufige Konfigurationsprobleme lösen können, die dazu führen können, dass mehr Benutzer gezählt werden als nötig, und wie Sie überflüssige oder ungenutzte Konten identifizieren und entfernen können, um Geld zu sparen. Es gibt auch einige Ansätze, die zu unnötigen Ausgaben führen können, z. B. wenn ein Personendokument anstelle eines Mail-Ins für geteilte Mailboxen verwendet wird. Wir zeigen Ihnen solche Fälle und deren Lösungen. Und natürlich erklären wir Ihnen das neue Lizenzmodell.
Nehmen Sie an diesem Webinar teil, bei dem HCL-Ambassador Marc Thomas und Gastredner Franz Walder Ihnen diese neue Welt näherbringen. Es vermittelt Ihnen die Tools und das Know-how, um den Überblick zu bewahren. Sie werden in der Lage sein, Ihre Kosten durch eine optimierte Domino-Konfiguration zu reduzieren und auch in Zukunft gering zu halten.
Diese Themen werden behandelt
- Reduzierung der Lizenzkosten durch Auffinden und Beheben von Fehlkonfigurationen und überflüssigen Konten
- Wie funktionieren CCB- und CCX-Lizenzen wirklich?
- Verstehen des DLAU-Tools und wie man es am besten nutzt
- Tipps für häufige Problembereiche, wie z. B. Team-Postfächer, Funktions-/Testbenutzer usw.
- Praxisbeispiele und Best Practices zum sofortigen Umsetzen
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on integration of Salesforce with Bonterra Impact Management.
Interested in deploying an integration with Salesforce for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on automated letter generation for Bonterra Impact Management using Google Workspace or Microsoft 365.
Interested in deploying letter generation automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
GraphRAG for Life Science to increase LLM accuracyTomaz Bratanic
GraphRAG for life science domain, where you retriever information from biomedical knowledge graphs using LLMs to increase the accuracy and performance of generated answers
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdfflufftailshop
When it comes to unit testing in the .NET ecosystem, developers have a wide range of options available. Among the most popular choices are NUnit, XUnit, and MSTest. These unit testing frameworks provide essential tools and features to help ensure the quality and reliability of code. However, understanding the differences between these frameworks is crucial for selecting the most suitable one for your projects.
Generating privacy-protected synthetic data using Secludy and MilvusZilliz
During this demo, the founders of Secludy will demonstrate how their system utilizes Milvus to store and manipulate embeddings for generating privacy-protected synthetic data. Their approach not only maintains the confidentiality of the original data but also enhances the utility and scalability of LLMs under privacy constraints. Attendees, including machine learning engineers, data scientists, and data managers, will witness first-hand how Secludy's integration with Milvus empowers organizations to harness the power of LLMs securely and efficiently.
Introduction of Cybersecurity with OSS at Code Europe 2024Hiroshi SHIBATA
I develop the Ruby programming language, RubyGems, and Bundler, which are package managers for Ruby. Today, I will introduce how to enhance the security of your application using open-source software (OSS) examples from Ruby and RubyGems.
The first topic is CVE (Common Vulnerabilities and Exposures). I have published CVEs many times. But what exactly is a CVE? I'll provide a basic understanding of CVEs and explain how to detect and handle vulnerabilities in OSS.
Next, let's discuss package managers. Package managers play a critical role in the OSS ecosystem. I'll explain how to manage library dependencies in your application.
I'll share insights into how the Ruby and RubyGems core team works to keep our ecosystem safe. By the end of this talk, you'll have a better understanding of how to safeguard your code.
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxSitimaJohn
Ocean Lotus cyber threat actors represent a sophisticated, persistent, and politically motivated group that poses a significant risk to organizations and individuals in the Southeast Asian region. Their continuous evolution and adaptability underscore the need for robust cybersecurity measures and international cooperation to identify and mitigate the threats posed by such advanced persistent threat groups.
5th LF Energy Power Grid Model Meet-up SlidesDanBrown980551
5th Power Grid Model Meet-up
It is with great pleasure that we extend to you an invitation to the 5th Power Grid Model Meet-up, scheduled for 6th June 2024. This event will adopt a hybrid format, allowing participants to join us either through an online Mircosoft Teams session or in person at TU/e located at Den Dolech 2, Eindhoven, Netherlands. The meet-up will be hosted by Eindhoven University of Technology (TU/e), a research university specializing in engineering science & technology.
Power Grid Model
The global energy transition is placing new and unprecedented demands on Distribution System Operators (DSOs). Alongside upgrades to grid capacity, processes such as digitization, capacity optimization, and congestion management are becoming vital for delivering reliable services.
Power Grid Model is an open source project from Linux Foundation Energy and provides a calculation engine that is increasingly essential for DSOs. It offers a standards-based foundation enabling real-time power systems analysis, simulations of electrical power grids, and sophisticated what-if analysis. In addition, it enables in-depth studies and analysis of the electrical power grid’s behavior and performance. This comprehensive model incorporates essential factors such as power generation capacity, electrical losses, voltage levels, power flows, and system stability.
Power Grid Model is currently being applied in a wide variety of use cases, including grid planning, expansion, reliability, and congestion studies. It can also help in analyzing the impact of renewable energy integration, assessing the effects of disturbances or faults, and developing strategies for grid control and optimization.
What to expect
For the upcoming meetup we are organizing, we have an exciting lineup of activities planned:
-Insightful presentations covering two practical applications of the Power Grid Model.
-An update on the latest advancements in Power Grid -Model technology during the first and second quarters of 2024.
-An interactive brainstorming session to discuss and propose new feature requests.
-An opportunity to connect with fellow Power Grid Model enthusiasts and users.
18. • Accessibility and the DOM
– DOM tree
• Semantic structure
• Styled with CSS
• Mouse and Keyboard behavior implemented by
browser
• Default mapping to the accessibility tree
– Accessibility tree
• Representation of the accessibility information
• Each element has a name, a role, a value and a
state
• Interpreted by Assistive technology
• Used in combination with the Accessibility API
– Composed Tree (web components)
22. • ARIA roles:
– Provide the ability to control the transition
between application (forms) mode and
document mode
– Provide more native announcments for
widgets like menus, tabs, sliders etc.
– Provide for the ability to control
announcements when updates occur away
from the focus
– Provide much more control over the structure
of the document and how someone navigates
around it
25. • Adding role:
– Changes the mapping to the accessibility API
– Does not change the behavior
• Focussability
• Keyboard interaction
• Mouse interaction
– Does not change the appearance
28. • ARIA attributes:
– Solve the problem of multiple labels and
descriptions through the addition of finer-
grained labeling attributes
– Enhance the ARIA roles through the addition
of standard state, value and role-specifying
attributes
– Add some attributes for better control of what
is spoken by the screen reader versus what is
simply there for presentational purposes
36. handled = false,
$this = jQuery(this);
if (e.ctrlKey || e.shiftKey || e.altKey || e.metaKey) {
// not interested
return;
}
/*
* Open a sub-menu and place focus on the first menuitem
within it
*/
function openMenu() {
if($this.hasClass("a11yfy-has-submenu")) {
$this.addClass("open").attr("aria-expanded",
"true").find(">ul>li:visible").first().attr("tabindex", "0").focus();
$this.attr("tabindex", "-1");
}
}
/*
* Move the focus to the menuitem preceding the current
menuitem
*/
function prevInMenu() {
var $context = $this;
$this.attr("tabindex", "-1");
while (true) {
if ($context.prev().is(':visible')) {
$context.prev().attr("tabindex", "0").focus();
return
}
$context = $context.prev();
if (!$context.prev().length) {
$context = $this.parent().find(">li").last();
if ($context.is(':visible')) {
$context.attr("tabindex", "0").focus();
return
}
}
if ($context[0] === $this[0]) {
$this.attr("tabindex", "0")
break;
}
}
}
/*
* Move the focus to the next menuitem after the currently
focussed menuitem
*/
function nextInMenu() {
var $context = $this;
$this.attr("tabindex", "-1");
while (true) {
if ($context.next().is(':visible')) {
$context.next().attr("tabindex", "0").focus(
/*
* This implements the WAI-ARIA-PRACTICES keyboard
functionality where
* pressing the key, corresponding to the first letter of a
VISIBLE element
* will move the focus to the first such element after the
currently focussed
* element
*/
var keyCode = e.charCode || e.which || e.keyCode,
keyString = String.fromCharCode(keyCode).toLowerCase(),
ourIndex = -1,
currentItem = this,
$this = jQuery(this),
$nextItem, $prevItem,
$menuitems = $menu.find("li[role="menuitem"]:visible");
if (keyCode === 9) {
return true;
}
$menuitems.each(function(index, value) {
if (value === currentItem) {
ourIndex = index;
}
if (index > ourIndex && !$nextItem) {
if
(jQuery(value).text().trim().toLowerCase().indexOf(keyString) === 0) {
if (ourIndex !== -1) {
$nextItem = jQuery(value);
} else if (!$prevItem) {
$prevItem = jQuery(value);
}
}
}
});
if (!$nextItem && $prevItem) {
$nextItem = $prevItem;
}
if ($nextItem) {
$nextItem.attr("tabindex", "0").focus();
$this.attr("tabindex", "-1");
if ($nextItem.parent().get(0) !== $this.parent().get(0)) {
$this.parent().parent("li").removeClass("open").attr("aria-
expanded", "false");
}
}
e.stopPropagation();
}).on("keydown", function(e) {
/*
* This implements the WAI-ARIA-PRACTICES keyboard
navigation functionality
*/
var keyCode = e.which || e.keyCode,
37. } else {
/* If in sub-menu, open sub-sub-menu */
openMenu();
}
break;
case 40: //down
handled = true;
if ($this.parent().hasClass("a11yfy-top-level-menu")) {
/* If in menubar, open sub-menu */
openMenu();
} else {
/* If in sub-menu, move to the next menuitem */
nextInMenu();
}
break;
}
if (handled) {
e.preventDefault();
e.stopPropagation();
}
return true;
);
return
}
$context = $context.next();
if (!$context.next().length) {
$context = $this.parent().find(">li").first();
if ($context.is(':visible')) {
$context.attr("tabindex", "0").focus();
return
}
}
if ($context[0] === $this[0]) {
$this.attr("tabindex", "0")
break;
}
}
}
switch(keyCode) {
case 32: // space
case 13: // enter
handled = true;
if ($this.find(">a").length) {
if ($this.find(">a")[0].click) {
/* If this is a leaf node, activate it*/
$this.find(">a")[0].click();
} else {
// This is a hack for PhantomJS
$this.find(">a").first().trigger("click");
}
} else {
/* If it has a sub-menu, open the sub-menu */
openMenu();
}
break;
case 37: //left
case 27: //esc
handled = true;
if (keyCode === 37 && $this.parent().hasClass("a11yfy-
top-level-menu")) {
/* If in the menubar, then simply move to the previous
menuitem */
prevInMenu();
} else {
if ($this.parent().attr("role") === "menu") {
// this is part of a submenu, set focus on containing li
$this.parent().parent().attr("tabindex", "0").focus()
.removeClass("open").attr("aria-expanded",
"false");
$this.attr("tabindex", "-1");
}
}
break;
case 38: //up
handled = true;
if ($this.parent().hasClass("a11yfy-top-level-menu")) {
/* If in the menubar, then open the sub-menu */
openMenu();
} else {
/* If in sub-menu, move to previous element */
prevInMenu();
}
break;
case 39: //right
handled = true;
if ($this.parent().hasClass("a11yfy-top-level-menu")) {
/* If in menubar, move to next menuitem */
nextInMenu();
38.
39.
40. First ARIA Best Practice – If there is a
native HTML element that does the
job, use that
Examples
1. Use <button> and <input
type=“submit”> NOT <a
role=“button”>
2. Use <ul>, <ol> and <li> NOT <span
role=“list”> etc.
41. Compelling ARIA roles
• Landmark Roles
– main, search, navigation, contentinfo, complementary,
banner
– region in combination with aria-label
• Live Region Roles
– log, status, alert
• Some Widget Roles
– tabpanel and tab
– slider
– menu, menubar, menuitem and associated attributes
– dialog – in combination with the document role to get it to
work in NVDA
– tree and treeitem – a bit tricky to get to work reliably
• Some form roles
– button, textbox, checkbox, radio, radiogroup
• presentation role
42. Second ARIA Best Practice – test it
on all YOUR platforms with the
assistive technology YOU must
support
All platforms have problems, most
have workarounds, iOS is the
most problematic and Android is
not quite ready for prime time yet
43. ARIA holes
• Tables, tables, tables
– Use the a11yfy library
• Arrow keys on iOS
– Insert dynamic modal content in line
– Use gestures
• Gestures
– Think hard about your mapping to the
portable gestures
– add on screen controls where possible
44. Accessible Gesture Calendar Example
https://github.com/dylanb/gestura11y
http://dylanb.github.io/datepicker/datepicker.html
• Shows use of tabindex to control focus
• Shows use of role=“application” to force
application mode
• Shows use of aria-live regions to announce the
current date as the user moves around
• Shows use of aria-hidden to hide presentation
markup from the screen reader
• Shows use of keyboard handler and mapping to
gestures
• Shows how to ensure that gestures are consistent
regardless of zoom level
49. Third ARIA Best Practice – Always
attach your event handlers to the
same element that has the role
and the focus
If you stick to this rule, you will avoid
events not being delivered
consistently
50. Fourth ARIA Best Practice – In
complex widgets like menubars,
tabpanels etc. always make all
interim structures presentational
51. Fifth ARIA Best Practice – in a
complex widget where you are
managing focus, disable all
naturally focusable elements with
tabindex=“-1”
Example is the a11yfy menu
examples where the anchors are
given tabindex=“-1”
52. Finally
There is a wealth or resources including
The ARIA specification (recommendation, normative)
http://www.w3.org/TR/wai-aria/
The Authoring Practices (draft)
http://www.w3.org/TR/wai-aria-practices/
Using ARIA in HTML (draft, informative)
http://www.w3.org/TR/aria-in-html/
The WAI Web Site http://www.w3.org/WAI/intro/aria
Mozilla Developer Network
https://developer.mozilla.org/en-
US/docs/Web/Accessibility/ARIA
Editor's Notes
Vice President of Product Development at Deque
Maintain the a11yfy jQuery open source library and the ngA11y accessibility library for Angular.js
Maintain the open source gulp-coverage code coverage module for Gulp.js
jQuery UI accessibility contributor
Interesting facts: Love JavaScript, Love Dancing have a Son studying computer science at Michigan
Deque is a pioneer in the accessibility industry. Since 1999. Our mission is digital equality. We are a software-based services company. Three main products are the FireEyes accessibility plug-in for Firebug, WorldSpace Enterprise accessibility analysis and reporting tool and the 2013 Computer World 21st Century Award Innovation category winning Amaze – a product for making web applications accessible without source code changes.
What does the number 8 Trillion have to do with accessibility?
$8 Trillion dollars is the yearly spending power of people with disabilities and their immediate families according to Gartner
15% of the population in the World have a disability
That is approximately 1 billion people
Why is accessibility like a Guinness? Because Guinness is all about the POUR and accessibility is all about POUR too.
P.O.U.R. stands for Perceivable, Operable, Understandable and Robust the four principles of accessibility that underpin the WCAG 2 standard.
WCAG 2 Guideline 1 deals with issues of perception
Guideline 2, with making UI components operable with all sorts of input devices
Guideline 3, with making the page, the UI and the content understandable, and
Guideline 4, with making it work across all devices and user agents
Name, Role, Value and State is one of the most important concepts related to accessibility. Lets take Michelangelo as an example, his name is michelangelo, his role is “ninja Turtle” his state could be “eating pizza” and his value might be “full” or “famished”, and similar concepts apply for every UI element, A button may be called “submit”, play the role of a button, have a state of disabled. There is not necessarily a value associated with a button. This is important, everything needs a name, after that, it may or may not be appropriate to apply the other attributes depending on the situation.
The third important principle of accessibility is to make everything keyboard accessible and to ensure that that keyboard accessibility works with assistive technology like a screen reader turned on. Focus management is a big part of this and tabindex is your friend when it comes to focus management.
Here is the current list of all the HTML 5 elements grouped into Josh Duck’s groupings of Text-level, Metadata and Scripting, Embedding content, Grouping Content, Forms, Document sections, Tabular data and Interactive elements. Now the forms and tables obviously form a big part of what we see on the web, but the thing that strikes me when I look at this picture is of all 100-something elements, only 4 of them are grouped into the category of “Interactive Elements”. The Web would be a pretty boring place, if that was all that was possible.
Also, I have actually never ever seen one of those elements actually used in the wild. Has anyone here ever used or seen one of the elements - menu, command, summary or details used on a web site or application?
This gives you an idea of some of the problems that accessibility faces without ARIA. It is not possible to easily communicate to the user the roles of the elements that they are interacting-with.
HTML (including HTML 5) was really designed with content (and not applications) in mind but has been enhanced by JavaScript and CSS to implement web applications. The problem with that is that accessibility for dynamic web applications has been made difficult and in some cases impossible to achieve when only using HTML. Let me show you 4 of the most common types of problems that dynamc web applications face with respect to accessibility.
You probably all recognize this GitHub repository creation form. It’s a pretty simple form – right?
How many labels/instructional texts does the “repository name” input field have? In my opinion, there are at least 3 associated pieces of information for that field, the account, the text “Repository Name” and the additional information about what makes a great repository name. You could argue that there are 2 other pieces of information associated with that field: the fact that you are creating a public repo and the slash between the account and the name.
At any rate, even with just three labels, it is not possible to elegantly solve this problem purely with HTML 5 for a screen reader. You end up being forced to replicate the instructional or labeling information into off-screen text and you do not have fine-grained control as to when the information is read. You could definitely make a case for the additional instructions “Great repository names are short and memorable, Need inspiration? How about ‘tripping avenger’.” To be read only after all other information about the form and also to be interrupted if the user starts to type.
Who recognizes this? This is the “waiting” gif. It and its brethren were introduced because of AJAX. To inform users that the browser was doing something and they should wait. Generally when this disappears, the page is dynamically updated in some way. Sometimes, this guy is not used and the page simply updates itself automatically. Think about Facebook chat or Twitter. With HTML 5 it is not possible to maintain focus on one part of the screen, but tell the screen reader user about an update that occurred on another part of the screen. This makes that sort of dynamic UI very difficult – sometimes impossible – to make accessible.
Take a look at this screen shot of my GitHub profile page. You will notice it has quite a lot of information on it. One of the things it has is a tabbed user interface. This user interface is implemented using? Anyone? Of course, an unordered list. Now going back to our Role, Name, Value State discussion, what is the state of the first tab in the list of three tabs? It is the “Selected” tab. In HTML 5, there is no standard way to communicate that to the screen reader other than adding off-screen text. This is ok, but it needs to be maintained, translated etc. and it results in a different experience for the user every time they encounter tabs on the Web.
You will notice that the developer who created this page, put a “selected” class on the anchor inside the list item, which CSS uses to style that tab differently. But the screen reader does not know anything about the semantic of that class as the class name itself could be called anything.
What does this image look like? It looks like a calendar date picker widget. Actually, it is implemented as a table. As a keyboard-only user, like a screen reader user, to navigate and find a date effectively, I would expect to be able to use keys like the UP arrow, DOWN arrow, Page Up, Page Down etc. The problem is, that he screen reader interprets these keys to allow the screen reader user to quickly navigate the page. So arrow down will navigate to the next element in the DOM instead of being delivered to your JavaScript handler.
If the user is persistent and knows he/she is in a datepicker, then they could try to switch to application mode using the shortcut key for that, but when they do that, the screen reader may turn off the table announcements, so whereas they gain the ability to send keyboard commands to the JavaScript handlers, they would lose the information about where they are in the table.
In pure HTML 5, you are forced to implement this as a standard table with links on each day and allow the user to tab back and forth through the days. The keyboard-only users loses the ability to efficiently navigate to the next month, week etc. with the page or arrow keys. A pretty bad experience for all keyboard users.
HTML 5 logo and a thumbs down image. Now I love HTML 5. But from an accessibility perspective, it still really sucks. Luckily ARIA, which stands for Accessible Rich Internet Applications has come to the rescue.
This screen shot shows an ARIA menu with an expanded sub-menu with the accessibility inspector for OS X showing the accessibility tree and associated properties for the parent element of the expanded sub-menu.
You can see that the role of the element is AXMenuItem
You can see that the name (accessibilityTitle) of the element is “One”
You can see that the value of the element is 0 (the value and the title on OS X are often interchanged and I am not sure of the reasons all the time), and
You can see that the state of the element (accessibilityExpanded) is YES (expanded)
Here is another example for the accessibility information for an ARIA slider
Note the role of AXSlider
Now note that the title is empty but there is an accessibilityLabel property with the setting of “Volume:”
There is a series of state settings such as maximum, minimum and orientation
And there is a value of 0 with a value description of 0%
When you create a table of elements with the ARIA roles, you can immediately see where HTML 5 has been significantly enhanced by the WAI-ARIA roles. You will notice a significant increase in the number of interactive roles, a significantly larger number of roles allocated to document structure and some new roles related to forms
http://dylanb.github.io/periodic-aria-roles.html
What does the role do to the accessibility tree? If you remember back to the ARIA slider example I showed earlier, when you look under the hood at the HTML markup of this slider then you see something completely different from what you might expect…
You will see in this case that the slider is implemented as a <button> element and the mapping to the accessibility API was changed by adding the role of slider to the element. We will come back to the other ARIA attributes later
So the reason that this implementer chose to use a <button> element for the slider is in order to take advantage of the button element’s inherent tab focussability. It would have been equally acceptable to have chose an <a> element or even (in this case, because of the required implementation of the arrow key and mouse behavior) even a <div>
Looking at the ARIA attributes, you see that additional semantics added by the roles, further enhanced and supported through some additional standardized state and value attributes that support interactivity. But also some attributes to help with naming, in particular, the ability to have different types of labels (a describedby and a labelledby)
http://dylanb.github.io/periodic-aria-attributes.html
Example of role-specifying attributes are aria-readonly and aria-required – when added to a form field, they further clarify what role those form fields play within the form
So lets look at how this applies to our slider example. In this slider example you will notice the use of five additional attributes – namely aria-labelledby, aria-valuemin, aria-valuemax, aria-valuenow and aria-valuetext.
Aria-labelledby is how the text for the accessibilityLabel is created
Aria-valuemin is how the setting for the accessibilityValueMin is configured
Aria-valuemax is how the accessibilityMaxValue is configured
Aria-valuenow is how the accessibilityValue is configured
And aria-valuetext is how the description for the current value is configured and assigned to the accessibilityValueDescription
Image Alt “STAY CALM! Just one question… Do you happen to know how to fly this thing?”
So the question you may ask is “Brilliant, does that mean the browser automatically added all the keyboard and mouse behavior for me?”
No!
You have to add that yourself. This is the strength and a weakness of ARIA. It means that you can communicate the state and role of complex widgets to the assistive technology with the help of the browser, but you still have to implement them yourself.
It is also one of the main reasons you should never try to use a builtin role like “button” rather than using the browser’s built-in <button> element.
This slide and the next show the amount of code you must implement to implement the ARIA authoring guidelines keyboard handlers for an ARIA menu
The rest of the code from the previous slide
So ARIA is perfection right? (image of a Ferrari)
Actually, it is far from perfect, but it is practical. (Image of a shiny new Dodge minivan)
I am now going to tell you about the ARIA attributes that work well, but remember, wherever you can, use the standard HTML elements where those exist already. Here are some examples, but these are but a few. The reason for this is that these built-in components all support all the assistive technologies well. If you simulate them with ARIA, you MUST supply all the behavior yourself and you will not be able to be used with older technology. ARIA is best used when doing things that were not possible with older assistive technology.
For a funny parody of the perils of recreating your own native elements, read http://www.heydonworks.com/article/reinventing-the-hyperlink
Some of the roles and attributes do work very reliably and give you functionality that is indispensible for achieving compelling accessible applications
The landmark roles are very well supported and every page should use them
The live region roles are a little problematic in that they do not simply work as specified everywhere, but by following some simple rules you can get them to work on all platforms. Us ethe a11yfy library if you don’t want to worry about the details yourself
Most of the widget roles work across all browsers. In particular, I find the ones listed on the screen very useful
The form roles all tend to work well but I would defer to the native HTML elements – the exception is if you need to style radio buttons and check boxes, then these roles come in useful and will allow you to support iOS where some of the hacks with off-screen native elements and presentational <div>s fall down
The role=“presentation” is a special role. It can be used to tell the AT to ignore the native semantics of the HTML structure and treat everything as if it was a div or a span. nOt that I would suggest you do this, but if you have layout tables, then adding role=“presentation” to that layout table will make the screen reader treat it like a bunch of divs instead of a table.
Unfortunately, even some very widely spread examples do not work on all platforms, the landscape is changing, so new releases of iOS could fix (or break) things. Apple does not publish its bug fixes or new features, so you just have to test.
There are two practical and one architectural hole in ARIA.
The biggest practical problem with accessibility in general today is table support. iOS and OS X have different and bad support for 3D tables. In addition, there are problems with tables from a responsive design perspective. My suggestion is to use the a11yfy library when you want/need tables as it has quite comprehensive support for all the things that are possible including responsive tables.
The second practical problem is that currently when VoiceOver is turned on and a keyboard attached to an iOS device, it is not possible to get access to the arrow key events inside a JavaScript event handler. Add to this the difficulties that iOS has with table markup and you have a real recipe for difficulty.
The architectural weakness is that ARIA is silent about gestures. In addition, screen readers treat them totally differently. On mobile devices, they all get intercepted and the gestures you use are totally different from when the screen reader is turned off. Some screen readers have ways to allow gestures through and some do not. Then there are undocumented behaviors when ARIA roles are applied to the focused elements.
From a practical perspective, the application role is useful in getting gestures to work on iOS, but Android does not have support for gesture pass-through and you can only reliably get access to about 10 gestures on iOS when VO is turned on. A specification called IndieUI is being worked-on that will address some of these issues but for now, you have to use gestures to replace arrow keys on iOS but there is no good solution for Android
You can clone the repository and follow along as I walk through the code. https://github.com/dylanb/gestura11y
You can also try out the example at http://dylanb.github.io/datepicker/datepicker.html
Now lets look at the UI. There is a basic calendar month layout with days of the week at the top and the date numbers aligned underneath those. The table is headed by the month and the year. There is a button at the top to go to the previous month and a button to go to the following month. By default, it opens up on the current month.
There is a highlight on the currently focused day for keyboard only sighted users. There is also a focus indicator when the widget itself has focus.
A keyboard user can use the arrow keys to move left right and up and down. If the user moves off the top or the bottom of the month, then the widget will advance or retreat by a month.
Clicking the Previous and Following buttons will also retreat or advance by a month. The keyboard user can use Page up and Page down to also achieve this retreat and advance functionality. Home and End will move to the last and first day of the month respectively.
The gestures of drag left, right, up and down do the same as the arrow keys. Swipe left goes to the beginning of the month. Swipe right goes to the end of the month. Swipe up goes to the previous month and swipe down goes to the next month.
Tapping, clicking or pressing enter will select the date and the date picker will disappear, replaced by the selected date.
When a screen reader is turned on, advancing the current day to any other date, will read out the entire date – for example January 10 2014
Looking at the HTML markup that is generated by the code, you will see firstly an offscreen <div> that has the role of “log” and the attributes aria-live=“assertive” and aria-relevant=“additions”. If you look at this once you have been using the widget, you will also notice a bunch of <p> tags with dates inside them, only one of which is not display:none – the last one. This is aria-live being used to announce updates because the user’s focus is on the table as a whole, this is the technique that is being used to announce the currently “selected” date to the user with a visual disability.
The second thing you will see is that the table has a tabindex=“0” attribute. This is to allow it to receive focus. It needs to receive focus because we need a way to tell the screen reader when to switch into application mode and ensuring that the table receives focus and then adding an application role to the table will do this. We can then attach or delegate event handlers on the table to deal with keyboard and gesture events.
You will also notice that the <thead> and <tbody> elements have aria-hidden=“true”. This is so that a screen reader user does not have to traverse past the entire table structure. The entire table looks like a single widget to the screen reader user. The same as it does to a sighted user. The screen reader user only perceives what is announced to him/her via aria-live.
The aria-live technique is a very common technique – especially to get around some of the difficulties that you would otherwise have getting the table markup to work well on all platforms. It can also be used to implement other dynamic content like tooltips, chat widgets, busy icons, progress etc. etc.
The aria-hidden technique is useful to hide content from a screen reader when it is redundant or presentational. Another example would be walking directions where there are both turn-by-turn instructions and a map. A blind user may want the turn-by-turn but will not be interested in the map itself.
Now lets turn to the code:
If you go to hammer.js/index.js on line 1165, you will see a modification I made to allow gestures to be supported regardless of zoom level.
The way that JavaScript gestures work, the velocity is calculated as the number of pixels that are swiped in a given time. However if the user has zoomed in (which will happen automatically if the user puts focus into a form field), then the number of pixels swiped for a given screen distance will be lower. Under thee circumstances – particularly if the user is blind and has not noticed the zoom, it becomes difficult to reliably generate the gestures.
By calculating the zoom level with:
zoomLevel = ev.target.ownerDocument.defaultView.innerWidth / ev.target.ownerDocument.documentElement.clientWidth;
And then multiplying (which will actually reduce it) the threshold for a swipe gesture by this fraction, we get much more predictable gestures.
Note that the standard Hammer.js library does not have this code.
Which brings us to the 3rd rule of ARIA – always align focus, roles and event handlers.
If you do not do this, you will see strange behavior like for example the counts of items being wrong
This way you can guarantee that using a combination of tab key and arrow keys will work correctly
But remember the second rule of ARIA – test yourself for support.