Code Monkey home page Code Monkey logo

achecker's Introduction

AChecker

AChecker is an automated accessibility checker used to evaluate the accessibility of HTML pages, and help ensure they can be accessed by all individuals, including those with disabilities, using assistive technologies to navigate the Internet.

AChecker live site: http://achecker.ca

What sets AChecker apart from other automated accessibility checkers?

  • Reviewers can interact with the system to make decisions on potential barriers that automated checkers can not determine with certainty.
  • Choose from a range of accessibility standards to review conformance with various international accessibility requirements.
  • Design custom accessibility guidelines tailored specifically to your organization
  • View existing guidelines in AChecker to see exactly what it is reviewing.
  • Design new accessibility checks and have them added to AChecker.

Requirements

  • PHP 7+
  • MySQL 4.1.13+
  • Composer
  • Ensure that the mysqli extension is enabled.

ChangeLog

See Changelog

Contribution

If you are interested in contributing to this project, then follow the instructions here.

Installation

  • Clone this repository
  • Be sure to have Composer setup on your system/server
  • Follow this instructions to install dependencies
  • Open a web browser to access the installation directory where AChecker was installed or cloned to
  • Follow the instructions provided by the installer.

Note, if you are installing from a Git clone of AChecker, before following the instructions above, you will need to create an empty configuration file. In the AChecker directory, at the command prompt, issue the following command:

touch include/config.inc.php

Then follow the instructions above.

For more about using AChecker, see the instructional videos on YouTube.

achecker's People

Contributors

astuanax avatar atutorlangs avatar blurblah avatar cindyli avatar dae-eklen avatar greatislander avatar gtirloni avatar karan10 avatar pierlauro avatar pranjaljn97 avatar tassoman avatar tejasshah93 avatar victoralagwu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

achecker's Issues

Thank you

Is your feature request related to a problem?

I'm always satisfied when I use AChecker.

Describe the solution you'd like

I want AChecker's GitHub repo to stay up and archived if possible.

Describe alternative solutions you've considered

I have used other web accessibility checkers, and AChecker is a part of my toolkit.

Additional context or notes

Thank you to all the contributors for creating great software, and making an impact on all of us internationally.

Getting AC_themes creation failed

While installing Acheker I am getting
image .
I had installed it earlier on wamp and it was working file but now I have reinstalled wamp. Getting the attached error.

MariaDB not working

Hi,
I tried to install the AChecker but i get error at mysql step.
I am using MariaDB can the AChecker work with MariaDB?

Add a 'confirm all problems' button.

Although the current workflow works great, it would be nice to quickly make a decision for all options rather than manually re-checking every input checkbox.

Would it be possible to add a button that runs these jQuery commands? Perhaps add an alert that says "Are you sure you want to confirm all likely and potential problems?"

$('input[type="checkbox"]').attr('checked', true);
$('input[value="Make Decision(s)"]').click();

[Achecker]different result browser Chrome and Mozilla

Hi,
Using these two browsers(mozilla and chrome) https://achecker.ca/checker/index.php returns me different result for likely and potential problems, for the same file uploaded.
Wcag 2.0 (AA)
Mozilla returns :0 known, 1 likely, 405 potential
Chrome return: 0 known, 0 likely, 243 potential
Shoulden't be always the same problems, also with different browser?
Running in local achecker returns me: 0 known, 0 likely , 243 potential errors.
061025.zip
Thank you again.

config.inc.php not found

I am installing Achecker but while installation I am getting error "../include/config.inc.php not found ".
So I created an empty file named config.inc.php but I am still getting that error. So I checked the codebase but couldn't find "config.inc.php" . Please add config.in.php.

Input type=image bug

Achecker is fine with this code. No errors.

<label for="example">Let's submit some text</label>
<input type="text" id="example" name="text">
<input type="submit" id="text" value="Send">

But if you replace the <input type="submit" id="text" value="Send"> with <input type="image" id="text" value="Send" src="image.gif" alt="image"> then it returns an error message about needing an additional label for the <input type="image"> tag!

This is wrong. According to W3C, "The element is a button, specifically a Submit Button."
https://www.w3.org/TR/html52/sec-forms.html#image-button-state-typeimage

So the image button in itself should not require a label to be added. Please fix this.

Insufficient memory while ckecking HTML paste with too much dom inside

Ciao a tutti :)
I've found a problem, if you load too much code into HTML textarea field PHP will run out of memory (128M).

I suppose the problem is into simple_html_dom library but I can't debug at which level.
Reading library's documentation emerge that could be related to a known problem with a PHP5 memory leak: http://simplehtmldom.sourceforge.net/manual_faq.htm#memory_leak

You can reproduce the bug acting like this:

  1. Plain install aChecker
  2. Do an URL validation of an huge site, for example www.trenitalia.it
  3. copy HTML source code of validation from browser
  4. paste source code into aChecker HTML textarea
  5. try to validate
( ! ) Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 226101 bytes) in /var/www/include/lib/simple_html_dom.php on line 614
Call Stack
# Time Memory Function Location
1 0.0129 1351312 {main}( ) ../index.php:0
2 0.1782 4723836 AccessibilityValidator->validate( ) ../index.php:258
3 0.1782 4723836 AccessibilityValidator->get_simple_html_dom( ) ../AccessibilityValidator.class.php:80
4 0.1782 4723836 str_get_dom( ) ../AccessibilityValidator.class.php:143
5 0.1782 4725644 simple_html_dom->load( ) ../simple_html_dom.php:43
6 7.6116 29384796 simple_html_dom->parse( ) ../simple_html_dom.php:464
7 7.6116 29384868 simple_html_dom->read_tag( ) ../simple_html_dom.php:550
8 7.6117 29386560 substr ( ) ../simple_html_dom.php:614

Undefined entity

Hi,

In some cases where the webpage is served with XHTML, UTF-8, but really serving ISO-8859-1, the XML that is returned, when selecting output=REST, becomes invalid.

It is full of â entities. [quote]It is an encoding issue. The non-breaking space, encoded in UTF-8 (the document makes the claim to be in UTF-8) is hex C2A0 (two bytes) but in ISO-8859-1 it is hex A0 (one byte). My browser thinks your page is ISO-8859-1. This is due to the Content-type header being incorrect.[quote]
http://ncsuwebdev.ning.com/forum/topics/the-case-of-the-mysterious

I would suggest the following change as shown in this diff:

--- RESTWebServiceOutput.class.php (saved version)
+++ (current document)
@@ -36,7 +36,7 @@

// REST templates
var $rest_main =

-'
+'

@@ -65,6 +65,7 @@

+
]>

@@ -225,7 +226,7 @@
$error['check_id'],
htmlentities(_AC("suggest_improvements")),
htmlentities(_AC($row_check['err'])),

  •                                   htmlentities($error["html_code"]),
    
  •                                   htmlentities(utf8_decode($error["html_code"])),
                                    $repair,
                                    $decision),
                              $this->rest_result);
    

    @@ -340,7 +341,7 @@
    public static function generateSuccessRpt()
    {
    $rest_success =
    -'
    +'

    success

Issue with link contrast checking

I believe I've come across an issue with the achecker that results in invalid colour contrasts being passed.

In the example attached we have:

  • paragraph standard colour: #717171
  • paragraph light colour: #0092c0
  • link light colour: #0092c0

When you run it through the achecker test against WCAG 2.0 AA - only the paragraph light colour element comes up with an error.

From my understanding of the requirements, links in WCAG 2.0 AA have two minimum contrast requirements -

  • 4.5:1 contrast between the link text colour and the background.
  • 3:1 contrast between the link text colour and the surrounding non-link text colour.

Which should mean the link would not pass because:

  • linked text colour -> background (white default) = 3.58:1 - insufficient contrast
  • linked text colour -> non-link text colour = 1.36:1 - insufficient contrast

Oddly, it correctly fails when the same colour is used for non-linked text (paragraph light color).

When you choose a more extreme contrast like #fff linked text with #fff background (so the link is completely invisible to the eye) it still passes.

Attached test case html file.

test link colour contrast.txt

[achecker] local 1.3 running with uploaded file: internet active/not active different results

Hi,
I ran some files with local achecker 1.3, php version 5.3.0.(attached one for testing).
i tried uploading file with internet connection active and not active, and giving local url to file with internet connection active and not active.
Achecker returns me 0 html validation problems when connection internet is down, returns correctly html error(12) when internet connection is active.
Giving local url achecker returns me warning like( file get contents()(http://validator.w3.org/check?uri=http://127.0.0.1/SOLOHTML/058029.html): failed to open stream:php network getaddresses:getaddrinfo failed
So I ask you if achecker needs internet connection active to connect to the w3c validator, also when i use local achecker 1.3
Because seems to me it needs internet conncetion active to connect to the w3c validator for html validation, otherwise returns 0 html validation.
Do you confirm that local achecker works like I said?
Also change known problems and potential when local achecker 1.3 runs with internet connection active or down.
namefile uploaded:058029
local achecker 1.3with internet active
Known Problems(93)Likely Problems (23)Potential Problems (409)HTML Validation (12)
local achecker 1.3 with internet not active
Known Problems(65) Likely Problems (23)Potential Problems (472) HTML Validation (0)
Is it all expected or is it a bug?
Sorry for so many questions.
Thanks.
058029.zip

Encoding error occurred when call REST API

I got encoding errors when I called REST API for the pages including Korean characters.
(other languages are same except English, I think)

For example, check this url
http://samsung.co.kr/main.do
(This page includes some Korean characters in title and other tags.)

I think this problem is caused by ISO-8859-1 encoding.
What about using UTF-8 encoding for REST API (responses XML)?

False positive with inputs inside labels

In the algorithm for Rule 204 - All input elements, type of "radio" have a label containing text, steps 7 and 8 state:

  1. The input element is contained by a label element
  2. Check if the label contains text

However, your detection for text inside the label is limited to text preceding the input. So the following element will validate as valid:

<label>
    My billing and shipping addresses are the same <input name="billing" type="radio" />
</label>

But this element will not:

<label>
    <input name="billing" type="radio" /> My billing and shipping addresses are the same
</label>

Since the WAI recommends that all left-to-right languages place text to the right of radio buttons and checkboxes, in LTR languages, this check results in a false positive.

The problem appears to be located in the associated_label_has_text function, which constructs a regular expression for the innerHTML of the label element, but omits a second capture group for text / HTML nodes to the right of the input element. So a rudimentary fix would look something like the following:

  public static function associated_label_has_text($e, $content_dom)
  {
      ...

      // 2. The element $e is contained by a "label" element
      if ($e->parent()->tag == "label")
      {
        $pattern = "/(.*)". preg_quote($e->outertext, '/') ."(.*)/";
        preg_match($pattern, $e->parent->innertext, $matches);
        if (strlen(trim($matches[1])) > 0) return true;
        if (strlen(trim($matches[2])) > 0) return true;
      }

      ...

      return false;
}

Install stalls when installing locally

Hi,

I am installing AChecker locally. When I get to the Accounts & Preferences page, enter the information and hit 'next' all it does is clear the password field and nothing happens. I've let it sit for about 20 minutes. I've even dropped the database and tried again from scratch and nothing.

I'll paste the log of my php server below:

PHP 7.3.11-0ubuntu0.19.10.1 Development Server started at Fri Nov 29 11:03:10 2019
Listening on http://localhost:8003
Document root is /home/cbooth/AChecker
Press Ctrl-C to quit.
[Fri Nov 29 11:03:13 2019] [::1]:44494 [302]: /
[Fri Nov 29 11:03:13 2019] PHP Warning:  Use of undefined constant AC_TEMP_DIR - assumed '
AC_TEMP_DIR' (this will throw an Error in a future version of PHP) in /home/cbooth/AChecker
/include/constants.inc.php on line 154
[Fri Nov 29 11:03:13 2019] [::1]:44496 [200]: /install/not_installed.php
[Fri Nov 29 11:03:13 2019] [::1]:44498 [200]: /install/stylesheet.css
[Fri Nov 29 11:03:13 2019] [::1]:44500 [200]: /images/achecker_logo.png
[Fri Nov 29 11:03:13 2019] [::1]:44502 [404]: /favicon.ico - No such file or directory                                                               
[Fri Nov 29 11:03:13 2019] [::1]:44504 [200]: /install/stylesheet.css
[Fri Nov 29 11:03:15 2019] PHP Warning:  Use of undefined constant AC_TEMP_DIR - assumed 
'AC_TEMP_DIR' (this will throw an Error in a future version of PHP) in /home/cbooth/AChecker
/include/constants.inc.php on line 154
[Fri Nov 29 11:03:15 2019] [::1]:44506 [200]: /install/index.php
[Fri Nov 29 11:03:15 2019] [::1]:44508 [200]: /install/images/feedback.gif
[Fri Nov 29 11:03:15 2019] [::1]:44510 [200]: /install/stylesheet.css
[Fri Nov 29 11:03:15 2019] [::1]:44512 [200]: /images/achecker_logo.png
[Fri Nov 29 11:03:15 2019] [::1]:44514 [200]: /install/stylesheet.css
[Fri Nov 29 11:03:15 2019] [::1]:44516 [404]: /install/images/cellpic1.gif - No such file or directory                                                    
[Fri Nov 29 11:03:17 2019] [::1]:44518 [200]: /install/install.php
[Fri Nov 29 11:03:17 2019] [::1]:44520 [200]: /install/stylesheet.css
[Fri Nov 29 11:03:17 2019] [::1]:44522 [200]: /images/check.gif
[Fri Nov 29 11:03:17 2019] [::1]:44524 [200]: /images/clr.gif
[Fri Nov 29 11:03:17 2019] [::1]:44526 [200]: /images/achecker_logo.png
[Fri Nov 29 11:03:17 2019] [::1]:44528 [200]: /install/stylesheet.css
[Fri Nov 29 11:03:18 2019] [::1]:44530 [200]: /install/install.php
[Fri Nov 29 11:03:18 2019] [::1]:44532 [200]: /install/stylesheet.css
[Fri Nov 29 11:03:18 2019] [::1]:44534 [200]: /images/achecker_logo.png
[Fri Nov 29 11:03:18 2019] [::1]:44538 [200]: /images/clr.gif
[Fri Nov 29 11:03:18 2019] [::1]:44536 [200]: /images/check.gif
[Fri Nov 29 11:03:18 2019] [::1]:44540 [200]: /install/stylesheet.css
[Fri Nov 29 11:03:29 2019] [::1]:44542 [200]: /install/install.php
[Fri Nov 29 11:03:29 2019] [::1]:44544 [200]: /install/stylesheet.css
[Fri Nov 29 11:03:29 2019] [::1]:44546 [200]: /images/achecker_logo.png
[Fri Nov 29 11:03:29 2019] [::1]:44548 [200]: /images/check.gif
[Fri Nov 29 11:03:29 2019] [::1]:44550 [200]: /images/clr.gif
[Fri Nov 29 11:03:29 2019] [::1]:44552 [200]: /install/images/feedback.gif
[Fri Nov 29 11:03:29 2019] [::1]:44554 [200]: /install/stylesheet.css
[Fri Nov 29 11:03:32 2019] [::1]:44556 [200]: /install/install.php
[Fri Nov 29 11:03:32 2019] [::1]:44558 [200]: /jscripts/sha-1factory.js
[Fri Nov 29 11:03:32 2019] [::1]:44560 [200]: /install/stylesheet.css
[Fri Nov 29 11:03:32 2019] [::1]:44562 [200]: /images/achecker_logo.png
[Fri Nov 29 11:03:32 2019] [::1]:44564 [200]: /images/check.gif
[Fri Nov 29 11:03:32 2019] [::1]:44566 [200]: /images/clr.gif
[Fri Nov 29 11:03:32 2019] [::1]:44568 [200]: /install/stylesheet.css
[Fri Nov 29 11:03:32 2019] [::1]:44570 [404]: /install/images/cellpic1.gif - No such file or directory                                                      

[AChecker] uploading file problem

Hi,
I tried to run both local and on line, this file:(attached 087016 )
(I have this problems only with some files, and with others don't, all files in the same directory)
087016.zip

Local version AChecker 1.3
Xampp Php 5.3.0
Browser Mozilla
Local AChecker returns me error.(like cannoct connect to url)
On line version runs correctly.
The local AChecker error could be related to the file or something else?
Could you please try to run in local this file and tell me if it runs correctly?
Thanks.

Achecker css validator

css validation with achecker doesn't work anymore. I think the problem may be some change in jigsaw validator's page code.

(not a bug) Finally got this working wanted to share some gotchas for the noobs like me

Requirements
PHP 7+
MySQL 4.1.13+
Composer

  • apache2
  • mysqli

Right out of the 'box' when you drop this repo into a directory you can run the php web server, but that gets sticky. It's best to drop it into your www of your apache server. The reason I say this is that the mysql bit got 'stuck' using the php webserver. Speaking of mysql, I could not get achecker to recognize the database i had setup until i installed that.

So that was the major gotchas i ran into attempting to install this version of achecker.

Question on Licensing

Hi,

I don't know if this question is appropriate here, but I thought I would give it a go. Several of my company's customers have been hit with Accessibility lawsuits that are basically of the form "Here is the output of Achecker. Now give us money". Of course, getting a letter like that is distressing, especially if you thought your site was accessible.

I read over your license. It seems pretty well written. I am not an attorney, but it is doesn't seem like that use of Achecker is a violation of the the license terms, though it seems like the spirit of this software is to assist developers.

Any thought on the matter? I don't know if there is anything to be done, but I thought it wouldn't hurt to reach out.

Thanks,
--Matt

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.