GithubHelp home page GithubHelp logo

tanaguru / kbaccess Goto Github PK

View Code? Open in Web Editor NEW
9.0 9.0 4.0 91.44 MB

Application to collaboratively collect good and bad examples of web accessibility (a11y) implementations.

Home Page: www.kbaccess.org

License: GNU Affero General Public License v3.0

Java 80.47% Shell 0.08% CSS 19.45%

kbaccess's Introduction

Build Status Join the chat at https://gitter.im/Tanaguru/Tanaguru

Tanaguru

Tanaguru is an opensource (AGPL license) website assessment tool. It is dedicated to accessibility (a11y) audits, and focuses on reliability and high level of automation.

Features

Four kinds of audit:

  • page audit
  • entire website audit (crawler4j embedded)
  • scenario audit
  • offline file audit

(That's the DOM that is tested, thus dealing with JS/AJAX/ARIA)

Vision

  1. Automate as much as we can and even more :)
  2. Be 200% reliable (don't give erroneous result)
  3. have technological fun

Download

http://download.tanaguru.org/Tanaguru/tanaguru-latest.tar.gz

Demo

https://my.tanaguru.com/

Installation and documentation

See all Tanaguru Docs

Rules implementation

Usefull links:

Business: accessibility

What tests are covered:

  • all the "tag and attributes tests" like missing alt, table headers check, frame title...
  • color contrast
  • language specification
  • downloadable files / office files (spreadsheet, wordprocessor...)
  • switch of context
  • ...

As of June 2016, this represents ~180 accessibility tests

Contact and discussions

Content of this last version (Tanaguru 6.0.0, 2019-04-09)

Features :

  • Tanaguru now use Selenese Runner, please use Selenium IDE to create your scenarios
  • Fix scenario download
  • Fix audit crash when using CSS id and class with special characters
  • Fix ColorExtractor script
  • [Scenario audit] Use command "store " to manually fire new audit
  • [Scenario audit] Prevent automatic firing audit event during scenario execution by checking parameter in scenario audit parameters
  • Add RMI API, exporting all data services of Tanaguru
  • [Site audit] process generated HTML

See full Changelog

Other Open Source tools

All these projects are opensource and also under the umbrella of Tanaguru Github account

Have Fun

Tanaguru team

kbaccess's People

Contributors

mfaure avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

kbaccess's Issues

Fix the header UI

  • Replace the logo KBAccess with plain text
  • Remove "create a testcase" and "search a testcase" links since they are already part of the menu bar on the left

Data model i18n

Be able to host the language of a given testcase into the data model.

Expected behaviour for the webapp:

  • a testcase language is the same than the user language,
  • except if the testcase language is overridden by the user

Fix testcases titles and links

titles and links :

  • title tag : Exemple accessibilité 1.1.3 (AccessiWeb 2.1) validé sur 'url'
  • URL : testcase/details/id-exemple-accessibilite-1.1.3-accessiweb2.1-valide.html
  • h1 : Testcase n°1050 : 1.1.3 ([abbr]AW2.1[abbr] validé sur 'url'

list :

  • detais image link instead of a css link
  • replace title column by description

Homepage: add stats about webarchives with most tests (in)validated

Add other statitics about web archives:

  • list the ones invalidating the most numerous tests
  • do the same for the criterias

Examples:
Web Archives with greater number of tests failed

  • WebArchive03: 14 tests failed
  • WebArchive07: 10 tests failed
  • WebArchive18: 5 tests failed

Web Archives with greater number of tests passed

  • WebArchive04: 15 tests failed
  • WebArchive08: 11 tests failed
  • WebArchive19: 6 tests failed

(same with criterias)

Fix the permissions detection over testcases

Log in as :

  • admin
  • moderator
  • contributor & owner of the testcases
  • Check if the UI displays every permissions over the testcases (edit and delete) in the list of every testcase and on the details page of a testcase

Provide the ability to delete testcases

Delete testcase as :

  • the owner of the testcase
  • moderator
  • admin
  • Check if you have rights to do so in every above situation
  • Check if the testcases have been effectively deleted

Implement administration back end

Users :

  • check that you can see the "all users" link on the left menu
  • check that you have access to that list
  • check that you can edit every users that are not admin
  • check that you can't edit an admin
  • check that you can't edit your own role (an admin can't downgrade himself)
  • edit the email, password, firstname, lastname and url of a user
  • check if every informations have been effectively changed

Testcases :

  • check if you can edit a testcase not created by you
  • edit a testcase not created by you
  • checl if every informations have been effectively changed

Provide the ability to edit testcases

Edit and delete testcase as :

  • the owner of the testcase
  • moderator
  • admin
  • Check if you have rights to do so in every above situation

Edit a testcase, change :

  • the test to a test that is from another criterion
  • the result
  • the description
  • Check if the new informations have been modified (especially if the criterion has been effectively changed)

Edit a testcase, don't change anything :

  • Check if the informations haven't been modified

Unable to create webarchive on http://www.lobodis.com/boutique.php

(KBAccess v1)

Log files say "The url is unreachable" whereas it is actually reachable !

(that's sad because this URL contains an interesting invalidation of AccessiWeb 11.8.3)

log extract:
Sep 17 10:23:03 diegogarcia jsvc.exec[4615]: 17 sept. 2012 10:23:03 org.opens.kbaccess.controller.WebarchiveController createWebarchive ATTENTION: null org.opens.slurpmanager.exception.WebarchiveCreationException: The url is unreachable : http://www.lobodis.com/boutique.php ^Iat org.opens.slurpmanager.handler.WebarchiveHandlerImpl.create(WebarchiveHandlerImpl.java:122) ^Iat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ^Iat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) ^Iat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) ^Iat java.lang.reflect.Method.invoke(Method.java:597) ^Iat org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307) ^Iat org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) ^Iat org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) ^Iat org.springframework.transaction.inter
Sep 17 10:23:03 diegogarcia jsvc.exec[4615]: tionInterceptor.java:106) ^Iat org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) ^Iat org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89) ^Iat org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) ^Iat org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) ^Iat $Proxy118.create(Unknown Source) ^Iat org.opens.slurpmanager.SlurpManagerImpl.create(SlurpManagerImpl.java:29) ^Iat org.opens.kbaccess.controller.WebarchiveController.createWebarchive(WebarchiveController.java:202) ^Iat org.apache.jsp.ajoutWebarchive_jsp._jspService(ajoutWebarchive_jsp.java:71) ^Iat org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) ^Iat javax.servlet.http.HttpServlet.service(HttpServlet.java:802) ^Iat org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331) ^Iat org.
Sep 17 10:23:03 diegogarcia jsvc.exec[4615]: (JspServlet.java:329) ^Iat org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) ^Iat javax.servlet.http.HttpServlet.service(HttpServlet.java:802) ^Iat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) ^Iat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) ^Iat org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) ^Iat org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172) ^Iat org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) ^Iat org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) ^Iat org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:544) ^Iat org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) ^Iat org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151) ^Iat org.apache.jk.server.JkCoyoteHandle
Sep 17 10:23:03 diegogarcia jsvc.exec[4615]: he.jk.common.HandlerRequest.invoke(HandlerRequest.java:283) ^Iat org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773) ^Iat org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703) ^Iat org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895) ^Iat org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) ^Iat java.lang.Thread.run(Thread.java:662)

Unable to create webarchive on http://www.france24.com/fr/

(KBAccess v1)

Unable to create either a testcase with wabarchive, or a single webarchive.
Logs show Heritrix running but taking a very looooong time, resultating in a 503 error.
Even after 30 minutes, the web archive is not created.

(This web page is interesting because it invalidates AccessiWeb criterias 8.3 and 8.10)

Rewrite clean URLs for SEO optimization

Turn :

  • testcase/details/:id-title.html
  • testcase/edit-details.html?id=:id
  • testcase/delete.html?id=:id
  • account/details.html?id=:id
  • admin/edituser.html?id=:id

Respectively into :

  • testcase/details/:id/title.html
  • testcase/edit/:id/title.html
  • testcase/delete/:id/title.html
  • account/details/:id/
  • admin/edituser/:id/

Document the API

The api documentation is really poor, we have to improve it and deprecate unused methods.

add a "see also" box on the testcase details page

Links to add in the "see also" box :

  • list of testcases on the same accessibility reference
  • list of testcases on the same criterion
  • list of testcases on the same test
  • list of testcases from the same user

Click the accessibility reference, criterion and test link :

  • check if each of them leads to their description on their original website

Log in and visit the details of one of your testcase :

  • the "testcases from this user" link should not appear

Visit the page without being authentified :

  • the "testcase from this user" link should return the same result as the "my testcases" of the user who created the testcase
  • the "same accessibility reference/critetion/test" links should return the same result as the search testcases page (with the same parameters)

Fix the "add testcase" step 2 validation form

The URL field validation does not work properly :

  • the error message "incorrect url" is not in the error area and is not easy to notice
  • enter "www.kbacess.org" : error message "missing fields" "incorrect url" without saying that it requires "http://"
  • selecting create a new webarchive wihtout inputting an URL : proposes to select an existing webarchive and without a way to validate (no button)
  • create a new webarchive with well formed but not reachable URL (i.e http://www.kbaccess.anytingyouwant) : the browser shows a working status, but nothing happens and the user is not notified that the URL he entered does not exist/isn't reachable

implement a firefox extension

A user could create a testcase in a few clics.
Login/passwd should be stored.

tests should be searchable by an ajax full-text search. For Instance, I type "fra" I should see all theme 2 tests (related to FRAmes)

Provide the ability to modify your account settings

Log in and go to "my account" :

  • change your firstname, lastname and website url
  • check if every informations have been effectively changed
  • change your password
  • check if you can log in with the new password

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.