Method and system for automated web page accessibility coding standards analysis
Summary by NHIP
Automated Web Accessibility Analysis
The method parses HTML code through sequential passes to generate component data, a hierarchy, and a tree structure for compliance analysis. An analyzer evaluates these elements against standards, storing aggregated results that pinpoint specific violation locations within the HTML code.
Claim Score by NHIP
Abstract
A method and system for automated accessibility checking of Web pages. The method includes the step of accessing a Web page using a parser to generate data corresponding to the components of the Web page. The data is analyzed using an analysis engine to determine compliance of the components of the Web page with a set of accessibility standards. The results of the analysis performed by the analysis engine are subsequently stored. The results are then provided to indicate a degree of compliance with the set of accessibility standards. The method for automated accessibility checking can be implemented as a hosted application residing on a network connected server.

Term
Term ended
Expired 7 April 2025, 1.5 years ago.
- Priority and filed
- Granted
- Expired
- Today
9 claims: 2 independent, 7 dependent
- 1Broadest claimClaim Score 27, narrow(NHIP)A method for automated accessibility checking of Web pages, comprising:accessing HTML code of a Web page using a parser to generate data corresponding to the components of the Web page by performing a plurality of analysis passes on the components of the Web page to generate data corresponding to the components of the Web page and a hierarchy of components, and based on the generated hierarchy, generate a hierarchical tree data structure corresponding to the components of the Web page, wherein the plurality of passes comprise at least a first pass and a second pass, and wherein the first pass is configured to break down complex components of the Web page into basic components and the second pass is configured to break down basic components of the Web page into a data stream of the Web page;sending the data corresponding to the components of the Web page, the data stream of the Web page, and the generated hierarchy to an analyzer;analyzing, by the analyzer, the data stream of the Web page, the data corresponding to the components of the Web page, and the hierarchical tree structure using an analysis engine to determine compliance of each of the components of the Web page with a set of accessibility standards;storing a result of the analysis engine, wherein the result comprises an aggregated result of the analysis of the components providing the aggregated result and indicating a degree of compliance with the set of accessibility standards including an indication of which standards were violated and where each violation occurred in specific locations in the HTML code of the Web page, and providing a link to the specific locations in the HTML code where each violation occurred;receiving a selection of at least one of the links to the specific locations within the HTML, and in response to the selection, displaying the point directly within the HTML code which leads to the violation;providing explanations as to reasons the locations within the HTML code violate the standards;and providing examples of HTML code corrections or changes to be made in order to remedy the HTML code which violates the standards.
- 6A system for automated accessibility checking of Web pages, comprising:a computer system having a processor coupled to a memory, the memory having computer readable code which when executed by the processor causes the computer system to implement: a parser for accessing HTML code of a Web page to generate data corresponding to the components of the Web page by performing a plurality of analysis passes on the components of the Web page to generate data corresponding to the components of the Web page and a hierarchy of components, based on the generated hierarchy, generate a hierarchical tree data structure corresponding to the components of the Web page, wherein the plurality of passes comprise at least a first pass and a second pass, and wherein the first pass is configured to break down complex components of the Web page into basic components and the second pass is configured to break down basic components of the Web page into a data stream of the Web page, and sending the data corresponding to the components of the Web page, the stream of the Web page, and the generated hierarchy to an analysis engine;the analysis engine for analyzing the data stream of the Web page, the data corresponding to the components of the Web page, and the hierarchical tree structure to determine compliance of each of the components of the Web page with a set of accessibility standards;a database for storing a result of the analysis engine;and a result visualizer for providing the result, wherein the result comprises an aggregated result of the analysis of the components, indicating a degree of compliance with the set of accessibility standards including an indication of which standards were violated and where each violation occurred in specific locations in the HTML code of the Web page, providing a link to the specific locations in the HTML code where each violation occurred, receiving a selection of at least one of the links to the specific locations within the HTML, and in response to the selection, displaying the point directly within the HTML code which leads to the violation, providing explanations as to reasons the locations within the HTML code violate the standards, and providing examples of HTML code corrections or changes to be made in order to remedy the HTML code which violates the standards.
Independent claims2
68 paragraphs in 5 sections, as filed
FIELD OF THE INVENTION
The field of the present invention pertains to checking adherence to coding standards adopted under Section 508 of the Federal Rehabilitation Act. More particularly, the present invention relates to a method and system for efficiently verifying that static and dynamically generated web pages and electronic documents have been coded to Section 508 standards.
BACKGROUND OF THE INVENTION
In 1973, the United States legislature passed the Workforce Rehabilitation Act. On Aug. 7, 1998, an amendment to the workforce rehabilitation act, commonly referred to as “Section 508”, was signed into law by President Clinton. Section 508 requires that electronic and information technology developed or purchased by the Federal Government be accessible to people with disabilities. Section 508 establishes both non-binding guidelines for technology accessibility and binding, enforceable standards that will be incorporated into the Federal Procurement procedures. In addition to providing for enforceable standards, the amended Section 508 establishes a complaint procedure and reporting requirements to encourage compliance.
The binding and non-binding guidelines of Section 508 were put into place in order to leverage the magnitude of federal purchasing power to promote competition in the technology industry by clarifying the Federal market's requirement for accessibility in products intended for general use. Section 508 requires Federal agencies to purchase electronic and information technology that is accessible to employees and members of the public who are disabled. For example, under the Section 508 procurement regulations, this means that if two companies are bidding a government contract and only one is offering accessible solutions, the acquiring agency is required to purchase the accessible technology.
Basically, information technology products are “accessible” if they can be used as effectively by people with disabilities as by those without. Section 508 required that an ADA “Access Board” establish standards for accessibility. The Access Board in turn established an Electronic and Information Technology Access Advisory Committee (EITAAC) in October of 1998. The EITAAC was composed of representatives from industry, academics, government and disability advocacy organizations and was charged with developing standards for accessible electronic and information technology.
With respect to software applications and Web browsing, standards developed by the EITAAC include so-called functional standards that require, for example, there be a way for a person who is mobility impaired or blind to use a given information technology product or Web site. Additionally, the developed standards require a given Web site to satisfy a list of specific items for Web accessibility. The specific items need to be implemented during Web site development to ensure that a person who is mobility impaired or blind, for example, can use the Web site. Examples of such specific items include a requirement for using alternative text for images and using client side image maps instead of server side maps. These are fairly simple and clear requirements. However, other requirements are not so straightforward, and can be subject to differing interpretations.
Hence, there exists a problem with specific definition of Section 508 coding standards. Some of the standards can be vague and subject to interpretation. This is especially so in the case of Web site designers having limited experience with the applicable accessibility rules. Usually, when it comes to the actual the detailed coding implementation of the Web pages themselves, the rules are often not sufficiently definite. In many cases, there is nothing hard and concrete that specifically says “this is how the HTML code must be implemented” to guide the Web page authors. Accordingly, the rules are subject to interpretation.
One prior art approach to solve this problem involves the use of accessibility “experts” which review the HTML coding of the Web pages of a Web site and grade their degree of compliance with the accessibility standards. When violations of the standards are found, the experts can suggest or implement methods to correct the violations. This approach has a disadvantage of being expensive and slow, since the expert reviews the Web pages after they have been encoded. Many Web sites can include hundreds of Web pages. Furthermore it is a visual analysis subject to human error.
Another prior art approach to solve this problem involves the use of software-based accessibility checking tools as opposed to an actual human expert. The Web site authors use the tools to check compliance of the Web pages of the Web site with the accessibility standards. These tools are often limited in their effectiveness in that they typically process one Web page at a time. Additionally, these prior art tools typically process constituent files of the Web page as opposed to an entire Web site. Thus, prior art software-based accessibility checking is excessively slow. Prior art also does not account for capturing all information required to generate dynamic web pages, such as cookies that are used for authentication. As such, the prior art cannot reach and therefore cannot analyze much of what is provided in dynamic web applications.
Thus, what is required is an automated accessibility checking system that can assist Web site authors in ensuring the Web pages of their Web site conform to accessibility standards of the law. Additionally, the required solution should be efficiently implemented and capable analyzing entire Web pages. The present invention provides a novel solution to the above requirements.
SUMMARY OF THE INVENTION
Embodiments of the present invention comprise a method and system for automated Web page accessibility coding standards analysis. Embodiments of the present invention provide an automated accessibility coding standards checking system that can assist Web site authors in ensuring the Web pages of their Web site are properly coded. Additionally, embodiments of the present invention are efficiently implemented and capable of analyzing entire Web sites.
In one embodiment, the present invention is implemented as a server hosted software-based method for automated accessibility coding standards checking of Web pages. The software-based method resides on a network connected server (e.g., a Web application). The method includes the step of accessing a Web page via the HyperText Transfer Protocol (HTTP), and using a parser to generate data corresponding to the components of the Web page. The data is analyzed using an analysis engine to determine coding standards adherence of the components of the Web page with a set of coding standards rules. The results of the analysis performed by the analysis engine are subsequently stored. The results are then provided to indicate known or suspected accessibility coding standards violations.
In other embodiments, the analysis engine can be optionally configured to automatically access a plurality of Web pages comprising a Web site. The analysis engine can optionally access each of the Web pages that link to a URL referenced by a given Web page, a method commonly known as “crawling”.
In another embodiment, the parser is configured to generate a tree data structure corresponding to the components of the Web page, wherein the tree data structure is configured for use by the analysis engine to generate the result. The parser can also be configured to perform a plurality of passes on the Web page to generate the data corresponding to the components of the Web page.
In this manner, embodiments of the present invention allow a user to enter a URL of a given Web site and analyze a page, or group of pages, for accessibility coding standards violations. This is advantageous since Web pages as presented by a Web browser are representative of what a user actually sees. Embodiments of the present invention are extensible because additional rules or standards can be added to the set of accessibility standards as required. Rules can be added and turned on or off at analysis time. Embodiments of the present invention can be configured to store analysis results in a database, thereby allowing a user to post-process results and thereby perform a higher degree of business analysis. Additionally, embodiments of the present invention implement a web crawling capability that automatically navigates down into sub-links. This saves users from doing individual page analysis.
In another embodiment, an HTTP proxy examiner is provided. In this embodiment, a user's web browser directly contacts the HTTP proxy examiner (e.g., a proxy server) to indirectly contact a web site and download a web page. The proxy examiner is used to analyze the constituent components comprising the Web site. The proxy examiner is used to analyze and perform those functions which may not otherwise be accessible. In this manner, embodiments of the present invention allow a user to navigate to a Web site as they normally would, indirectly causing analysis to occur and indirectly causing analysis results to be stored in a database
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention is illustrated by way of example and not by way of limitation, in the Figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:
<figref idrefs="DRAWINGS">FIG. 1</figref> shows an overview diagram of an automated Web page accessibility coding standards analysis system in accordance with one embodiment of the present invention.
<figref idrefs="DRAWINGS">FIG. 2</figref> shows a more detailed diagram of an accessibility coding standards checking system in accordance with one embodiment of the present invention.
<figref idrefs="DRAWINGS">FIG. 3</figref> shows a flowchart of the steps of a process in accordance with one embodiment of the present invention.
<figref idrefs="DRAWINGS">FIG. 4</figref> shows a diagram of a proxy examiner system in accordance with one embodiment of the present invention.
<figref idrefs="DRAWINGS">FIG. 5</figref> shows a diagram of a coding standards analysis system in accordance with one embodiment of the present invention.
<figref idrefs="DRAWINGS">FIG. 6</figref> shows a diagram of a web crawler analysis system in accordance with one embodiment of the present invention.
<figref idrefs="DRAWINGS">FIG. 7</figref> shows a diagram of a proxy analyzer system in accordance with one embodiment of the present invention.
<figref idrefs="DRAWINGS">FIG. 8</figref> shows the components of a computer system in accordance with one embodiment of the present invention.
DETAILED DESCRIPTION OF THE INVENTION
Reference will now be made in detail to the embodiments of the invention, examples of which are illustrated in the accompanying drawings. While the invention will be described in conjunction with the preferred embodiments, it will be understood that they are not intended to limit the invention to these embodiments. On the contrary, the invention is intended to cover alternatives, modifications and equivalents, which may be included within the spirit and scope of the invention as defined by the appended claims. Furthermore, in the following detailed description of the present invention, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be obvious to one of ordinary skill in the art that the present invention may be practiced without these specific details. In other instances, well known methods, procedures, components, and circuits have not been described in detail as not to unnecessarily obscure aspects of the present invention.
Embodiments of the present invention comprise a method and system for automated Web page accessibility coding standards analysis. Embodiments of the present invention provide an automated accessibility checking system that can assist Web site authors in ensuring the Web pages of their Web site compliant with accessibility standards of the law. Additionally, embodiments of the present invention are efficiently implemented and capable analyzing entire Web pages. The method and system of the present invention and its benefits are further described below
Notation and Nomenclature
Some portions of the detailed descriptions which follow are presented in terms of procedures, steps, logic blocks, processing, and other symbolic representations of operations on data bits within a computer memory. These descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. A procedure, computer executed step, logic block, process, etc., is here, and generally, conceived to be a self-consistent sequence of steps or instructions leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated in a computer system. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present invention, discussions utilizing terms such as “processing” or “computing” or “communicating” or “instantiating” or “registering” or “displaying” or the like, refer to the action and processes of a computer system (e.g., computer system 512 of <figref idrefs="DRAWINGS">FIG. 5</figref>), or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
Method and System of the Invention
<figref idrefs="DRAWINGS">FIG. 1</figref> shows an overview diagram of an automated Web page accessibility coding standards analysis system <b>100</b> in accordance with one embodiment of the present invention. As shown in <figref idrefs="DRAWINGS">FIG. 1</figref>, system <b>100</b> includes a Web site <b>101</b> having a plurality of Web pages <b>102</b>. An accessibility coding standards checking system <b>110</b> is coupled to the Web site <b>101</b> via a network communications link <b>120</b> (e.g., Internet, intranet, etc.).
System <b>100</b> of the present embodiment comprises a system for automated Web page accessibility coding standards analysis. The accessibility coding standards checking system <b>110</b> is configured to provide an automated accessibility coding standards checking system that can assist the authors of Web site <b>101</b> ensure the Web pages <b>102</b> are properly coded for accessibility. System <b>110</b> is efficiently implemented and capable of analyzing the Web pages <b>102</b> in their entirety.
In one embodiment, the accessibility coding standards checking system <b>110</b> is implemented as a server hosted software-based method for automated accessibility checking of Web pages. In such an embodiment, the software-based functionality of system <b>110</b> resides on a network connected server (e.g., Web application). Alternatively, in another embodiment, the accessibility coding standards checking system <b>110</b> is implemented as a client hosted software-based method.
The system <b>110</b> accesses one or more of Web pages <b>102</b> to determine coding standards of the components of the one or more Web pages <b>102</b> with a set of accessibility standards. The results are then provided to a user to indicate a degree of coding standards with the set of accessibility standards. The Web pages <b>102</b> can be accessed automatically, as in a case where the Web pages <b>102</b> are commonly linked through one or more URLs. For example, a user can enter a homepage of the Web site <b>101</b> into the coding standards checking system <b>110</b> for analysis, and based on this homepage, system <b>110</b> can analyze all linked pages <b>102</b> of Web site <b>101</b>.
It should be noted that embodiments of the present invention are directed towards ensuring compatibility with coding standards as determined by the Access Board for Section 508 of the Workforce Reinvestment Act of 1998. Embodiments of the present invention function by assisting Web site designers in ensuring their respective Web sites conform to the coding standards. As known by those in the art, beginning in June of 2001, government Web sites are required to conform to these standards. More particularly, contractors doing Web development for the Federal government are required to conform to these standards. Accordingly, companies doing business with the Federal government or with states receiving technical assistance funds (Tech Act states) are required to put forth an accessible Web presence.
For additional descriptions of the accessibility standards, readers are directed to the full set of Section 508 final standards available on the Access Board Web site at http://www.access-board.gov/news/508-final.htm. The specific standards for the Web are in §1194.22 of that document entitled “Web-based Intranet and Internet Information and Applications.”
<figref idrefs="DRAWINGS">FIG. 2</figref> shows a diagram of an accessibility coding standards checking system <b>200</b> in accordance with one embodiment of the present invention. Diagram <b>200</b> shows a more detailed depiction of a coding standards checking system. As depicted in <figref idrefs="DRAWINGS">FIG. 2</figref>, system <b>200</b> shows a Web site <b>101</b> including a plurality of Web pages <b>102</b>. A host server <b>210</b> is shown. Included within the host server <b>210</b> are an HTTP access module <b>214</b>, a parser <b>215</b>, an analysis engine <b>216</b>, a storage unit <b>220</b>, and a result visualizer <b>225</b>. The host server <b>210</b> is coupled to a Web client <b>230</b>.
Host server <b>210</b> of the present embodiment functions by implementing a method for automated accessibility checking of the Web pages (e.g., Web pages <b>102</b>) of a Web site (e.g., Web site <b>101</b>). Analysis is initiated by a user entering one or more URLs of Web pages requiring analysis, in this case Web pages <b>102</b>. Based on the entered URL, the access module <b>214</b> accesses the Web pages <b>102</b> and generates a Web page data stream corresponding to the components of the Web page. The data stream is passed to the parser <b>215</b>. In this embodiment, the parser <b>215</b> functions by pulling apart the components of an HTML page for subsequent analysis. The components of the HTML page included, for example, tags, images, scripts, text strings, and the like. The components are presented to the analysis engine <b>216</b> as a Web page data stream.
In one embodiment, the parser <b>215</b> is configured to generate a tree data structure <b>217</b> corresponding to the components of each Web page. The tree data structure <b>217</b> is configured for use by the analysis engine. Once built, the tree data structure <b>217</b> includes all the information about the components of a Web page, and the information is in a form that allows the analysis engine to quickly access and apply the various rules of the accessibility standards. The tree data structure <b>217</b> allows the analysis engine to flag components of the Web page that are not coded to standards or that are at risk of causing accessibility problems.
In another embodiment, the parser <b>215</b> is configured to perform a plurality of passes on each Web page in order to generate the data corresponding to the components of the Web page. For example, a first pass is used to break down the more basic components of a Web page and analyze the more straightforward components. The second pass, and subsequent passes, are used to break down the more complex components of a Web page. This data is sent to the analysis engine <b>216</b> as the Web page data stream.
The Web page data stream, comprising the data corresponding to the components of the Web pages, is analyzed by analysis engine <b>216</b> to determine compliance of the components of the Web page with a set of accessibility standards. For example, the analysis engine <b>216</b> is configured to look at each one of the tags received in the Web page data stream and knows what rules to apply and how to apply them to determine whether the tags are compliant. Similarly, as an example, the analysis engine <b>216</b> looks at each of the graphics images to determine whether alternative text has been supplied. As described above, these rules are defined by Section 508 coding standards.
It should be noted that the set of rules is user customizable. Rules can be configured to be analyzed individually, or analyzed in a group. For example, a user can configure a particular rule to be analyzed by itself in order to eliminate any possible interactions with the analysis of other rules. (E.g., check all tags for compliance).
The storage unit <b>220</b> functions by storing the results of the analysis performed by the analysis engine <b>216</b>. In this embodiment, the storage unit <b>220</b> comprises a database maintained by the host server <b>210</b>. The results of the analysis are stored into the database. This allows easy access and analysis at a later time. The results can be indexed with respect to which page generated the results, which URL generated the results, Web site, or the like. The results can also be indexed with respect to which type of error is generated, alternative text attributes, etc. Additionally, violations can be categorized with respect to whether a particular violation is a violation of Section 508, or some other set of HTML analysis rules. For example, the rule set can be extended to take into account general HTML coding rules, or other accessibility rules that might be established by the Worldwide Web Consortium (W3C) in their Web Content Accessibility Guidelines (WCAG).
The result visualizer <b>225</b> functions by accessing the data stored within result storage unit <b>220</b> and packaging the data in order to subsequently provide the data to the Web client <b>230</b> (and thus the user). In this embodiment, the data is packaged in order for display on a Web browser of the client <b>230</b> (e.g., HTML formatted). For example, the results can be provided in such manner as to indicate a degree of compliance with the set of accessibility standards. A result presentation can be rendered in order to graphically depicted the degree of compliance. The result presentation can be, for example, a graph showing the number of errors found, the type of errors found, and the like. The result presentation is provided to the Web client using Web based standards (e.g., HTML).
The result visualizer <b>225</b> accesses this stored result information and presents the information to the user and easily understood easily readable form. For example, the result visualizer <b>225</b> can indicate where the violations occurred and allow a user to click on the specific violation and be taken directly to the point in the Web page or the point in the actual HTML code which led to the violation. Explanations as to why the code may or does violate standards can also be provided. Short version can be provided or a long version can be provided. Examples of the correct code can be can provided. Links to more detailed explanation material can be provided (e.g., to more authoritative manuals).
<figref idrefs="DRAWINGS">FIG. 3</figref> shows a flowchart of the steps of a process <b>300</b> in accordance with one embodiment of the present invention. As depicted in <figref idrefs="DRAWINGS">FIG. 3</figref>, process <b>300</b> shows the steps of a server hosted accessibility coding standards analysis system (e.g., system <b>210</b> of <figref idrefs="DRAWINGS">FIG. 2</figref>) as it analyzes the Web pages of a Web site.
Process <b>300</b> begins in step <b>301</b> where a Web page (e.g., one of Web pages <b>102</b> of <figref idrefs="DRAWINGS">FIG. 2</figref>) is accessed using an HTTP access module (e.g., access module <b>214</b>), and the stream is passed to a parser (e.g., parser <b>215</b>) to generate data corresponding to the components of the Web page. In step <b>302</b>, the data generated by the parser is analyzed using an analysis engine (e.g., analysis engine <b>216</b>) to determine whether the components of the Web page are properly coded according to a set of accessibility coding standards. As described above, the analysis engine analyzes each of the Web page components, such as, for example, the tags, the graphics images, the text strings, the scripts, and the like for proper coding with respect to the accessibility coding standards.
Referring still to process <b>300</b> of <figref idrefs="DRAWINGS">FIG. 3</figref>, in step <b>303</b>, the results of the analysis engine are stored using a database (e.g., the storage unit <b>220</b>). As described above, storage within a database facilitates subsequent review and analysis at later times by other users. In step <b>304</b>, a result presentation is generated indicating a degree of coding standards compliance with the set of accessibility standards used by the analysis engine. The result presentation can be generated using a result visualizer (e.g., result visualizer <b>225</b>). Subsequently, in step <b>305</b>, the results are provided to a Web client (e.g., Web client <b>230</b>) for review by a user through a Web browser.
<figref idrefs="DRAWINGS">FIG. 4</figref> shows a diagram of a proxy examiner system <b>400</b> in accordance with one embodiment of the present invention. As depicted in <figref idrefs="DRAWINGS">FIG. 4</figref>, Web client <b>230</b> is coupled to a proxy examiner <b>401</b>. The proxy examiner <b>401</b> is used to analyze the constituent components comprising the Web site <b>101</b>. The proxy examiner <b>401</b> is used to analyze and perform those functions which may not be accessible to the parser <b>215</b> or the analysis engine <b>216</b> (shown in <figref idrefs="DRAWINGS">FIG. 2</figref>). Three of such functions are shown as style sheet checking <b>410</b>, link checking <b>411</b>, and JavaScript analysis <b>412</b>.
In the present embodiment, proxy examiner <b>401</b> is used where the Web crawling system as described above is inadequate. An example would be in a case where a log-in is required in order to access Web pages. The Web crawling system <b>200</b> described above may have difficulty functioning with data input pages, such as log-in pages. The Web crawling system <b>200</b> may have difficulty functioning with “cookies” wherein log-in information is placed upon client's hard drives. The proxy examiner <b>401</b> can function as an agent capable of dealing with data input pages, such as log-in pages, and dealing with cookies.
In one embodiment, Proxy examiner <b>401</b> intercepts and passes through the HTTP communication from a browser to a web server and back. In one example, the first step a user takes is to get a “run ID” cookie from the proxy examiner <b>401</b>. The cookie is stored on the client <b>230</b> browser with a set duration. Then, the user sets their HTTP Proxy of their browser to point to proxy examiner <b>401</b>. From that point onward, the proxy examiner <b>401</b> receives an HTTP request from a client browser, and pulls out the “run ID” cookie value. It then passes the request along to the targeted Web Server <b>101</b>, and receives HTML along with any HTTP headers as part of the standard HTTP protocol. It forwards all the returned HTML and HTTP headers to the client <b>230</b> browser but along the way analyzes the HTML for any accessibility violations. Results of analysis are stored in a database (e.g., result storage <b>220</b>) under the “run ID”. The results of the analysis are provided to the result storage unit as a Web page datastream, as shown in <figref idrefs="DRAWINGS">FIG. 4</figref>. Later, the user can run a report on accessibility analysis results based on the run ID.
Thus, the proxy examiner <b>401</b> can get to Web pages that normally would not be available because without cookies set, users would get to the login or error page only. Compared to a manual analysis, this is much more efficient. For example, manual analysis would be the approach where people go to a page, save the HTML, publish it, and analyze it a page at a time. This system just lets a user click from page to page and then go to a report for results.) The manual approach also introduces a security hole. Compared to extending existing analyzers to allow cookie insertion into the HTTP stream, this is better because:
some cookies are not visible since they are only in browser memory, and it automates the cookie acquisition and sending process, reducing error prone manual data entry; and
capturing new cookies as they are generated.
Thus, embodiments of the present invention provide a method and system for automated Web page accessibility coding standards analysis. Embodiment of the present invention provide an automated accessibility checking system that can assist Web site authors in ensuring the Web pages of their Web site compliant with accessibility standards of the law. Additionally, embodiments of the present invention are efficiently implemented and capable analyzing entire Web pages.
Referring now to <figref idrefs="DRAWINGS">FIG. 5</figref>, a diagram of an analysis system <b>500</b> in accordance with one embodiment is shown. System <b>500</b> shows the components of an analysis system <b>500</b> in accordance with an alternative embodiment of the present invention.
The system <b>500</b> embodiment shows a more detailed depiction of interactions between analysis system components as Web pages of a Web site are examined with respect to accessibility coding standards. As with system <b>200</b> of <figref idrefs="DRAWINGS">FIG. 2</figref>, the web client <b>230</b> makes a request to analyze a Web page, supplying a URL of the page or name of the associated file. The Analyzer <b>516</b> causes an HTML Retriever <b>502</b> to select either an HTTP Protocol Handler <b>501</b> or file reading handler <b>506</b> to pull in the identified Web page (e.g., one of Web pages <b>102</b> or Web page <b>507</b>). A resulting data stream from either of these sources is passed to an HTML parser <b>515</b>. The parser <b>515</b> reads HTML from data stream, creating a page representation <b>503</b> and feeding results back to the analyzer <b>516</b>. The analyzer <b>516</b> causes the Analysis Engine <b>504</b> to process page representation <b>503</b>. In the present embodiment, the page representation <b>503</b> closely matches HTML specifications of the original Web page. The Web page being analyzed is broken down into multiple elements commonly referred to as “tags” and each tag has any number of name-value pairs referred to as “attributes”.
The analysis engine <b>504</b> applies one or more rules to each HTML element in the page representation <b>503</b>. As described above, the set of rules is customizable. Each rule processes one or more HTML elements, often analyzing the element's attribute names and values. In some cases, a rule analyzes children or ancestors of an HTML element in a structured hierarchy. If rule violations are found, results (e.g., analysis results <b>505</b>) are stored in result storage <b>520</b> (e.g., a database). The user accesses and reviews the analysis results <b>505</b> by accessing a reporting Web page. The reporting Web page starts up a result visualizer <b>525</b>, generating results of the analysis in visually appealing format.
<figref idrefs="DRAWINGS">FIG. 6</figref> shows a diagram of a web crawler analysis system <b>600</b> in accordance with one embodiment of the present invention. System <b>600</b> shows the components used to implement the web crawling analysis functions of an accessibility standards analysis system (e.g., system <b>500</b>).
Analysis begins when the Web Client <b>230</b> makes request to crawl a web site (e.g., Web site <b>101</b>), supplying parameters such as top URL, depth of analysis, maximum number of URLs to analyze, and URL limiter. The crawler <b>616</b> subsequently visits each Web page specified by the parameters and analyzes it using analysis engine <b>504</b> in the manner described above with system <b>500</b> of <figref idrefs="DRAWINGS">FIG. 5</figref>. For each page Crawler <b>616</b> visits, state data (e.g., a list of visited links <b>603</b>) is retained indicating that particular URL has been visited.
During analysis, a list of sublinks <b>601</b> is collected. Each of the sublinks <b>601</b> are fed through a sublink iterator <b>602</b> and sent to Crawler <b>616</b> for analysis. The crawler <b>616</b> again visits the specified Web page, but first checks to make sure the page hasn't already been visited, as indicated in the list of visited links <b>603</b>. If the Web page has been visited, the page is not crawled again (to prevent repeated analysis). Analysis results <b>505</b>, spanning multiple URLs as a result of the Crawl function, are stored in the result storage <b>520</b> under a common Run ID. In this embodiment, the result visualizer <b>525</b> presents multiple options for viewing the combined data, e.g., most common violation found, all pages analyzed, results for a specific page analyzed, and the like.
<figref idrefs="DRAWINGS">FIG. 7</figref> shows a diagram of a proxy analyzer system <b>700</b> in accordance with one embodiment of the present invention. System <b>700</b> shows the components used to implement the proxy analysis functions of an accessibility standards analysis system (e.g., system <b>500</b>). As with proxy examiner <b>401</b> of <figref idrefs="DRAWINGS">FIG. 4</figref>, the proxy analyzer system <b>700</b> is used where a Web crawling system (e.g., Web crawling system <b>600</b> of <figref idrefs="DRAWINGS">FIG. 6</figref>) may be inadequate. The proxy analyzer system <b>700</b> is capable of dealing with data input pages, such as log-in pages, and dealing with cookies.
In this embodiment, analysis begins when a user establishes a Run ID by requesting a run ID on Web Client <b>701</b> and pulling it from RunID Cookie Generator <b>704</b>. Also, that same cookie generator stores that run ID in Result Storage <b>520</b> for later referencing via <b>230</b> (effectively making an empty holding bin for any results stored from results <b>505</b> into storage <b>520</b>). The Test Web Client <b>701</b> then requests one of Web pages <b>102</b>. The browser of Web client <b>701</b> (e.g., MSIE) sends request to an HTTP proxy <b>702</b> based on browser configuration. The requested URL, plus cookie, are sent to the proxy <b>702</b>. The proxy <b>702</b> then contacts the URL requested, and pulls HTML from it. The proxy <b>702</b> both returns a data stream from target URL to the web client <b>701</b>, and saves output to a temporary file <b>703</b>. After returning stream of data to client <b>701</b>, the proxy <b>702</b> tells the analyzer <b>516</b> to analyze the given temporary file <b>703</b>, and store results in the result storage <b>520</b> under the run ID <b>704</b> (specified by the cookie). It should be noted that the above analysis is not done when a duplicate hit is found. A duplicate hit is defined as a Web page having all the same characteristics as a prior Web page, including URL and any form parameters.
After requesting the Run ID, the user of the Test Web Client <b>701</b> is presented with the cookie (e.g., in the form of a number and a hyper link) which can be used to access and view the results. The user view at the Test Web Client <b>701</b> is that of a normal web page, so user continues to click or navigate to web pages as usual. Subsequently, the RunID cookie expires. At any point after analysis results <b>505</b> are generated, a user can start up a separate browser at the Analysis Web Client <b>230</b> (e.g., Netscape) on same or separate client machine, and view results of analysis. The analysis results <b>505</b> may expand with each click performed by the user of Test Web Client <b>701</b> until the cookie RunID cookie has expired or a new RunID is established by the user.
Computer System Platform
With reference now to <figref idrefs="DRAWINGS">FIG. 8</figref>, a computer system <b>812</b> in accordance with one embodiment of the present invention is shown. Computer system <b>812</b> shows the components of a computer system in accordance with one embodiment of the present invention that provides the execution platform for implementing certain software-based functionality of the present invention. As described above, certain processes and steps of the present invention are realized, in one embodiment, as a series of instructions (e.g., software program) that reside within computer readable memory units of a computer system (e.g., system <b>812</b>) and are executed by the processor(s) of system <b>812</b>. When executed, the instructions cause the computer system <b>812</b> to implement the functionality of the present invention as described above.
In general, computer system <b>812</b> shows the basic components of a computer system used to implement “server” machines and “client” machines. Computer system <b>812</b> comprises an address/data bus <b>800</b> for communicating information, one or more central processors <b>801</b> coupled with the bus <b>800</b> for processing information and instructions, a computer readable volatile memory unit <b>802</b> (e.g., random access memory, static RAM, dynamic, RAM, etc.) coupled with the bus <b>800</b> for storing information and instructions for the central processor(s) <b>801</b>, a computer readable non-volatile memory unit (e.g., read only memory, programmable ROM, flash memory, EPROM, EEPROM, etc.) coupled with the bus <b>800</b> for storing static information and instructions for the processor(s) <b>801</b>. System <b>812</b> also includes a mass storage computer readable data storage device <b>804</b> such as a magnetic or optical disk and disk drive coupled with the bus <b>800</b> for storing information and instructions. Optionally, system <b>812</b> can include a display device <b>805</b> coupled to the bus <b>800</b> for displaying information to the computer user, an alphanumeric input device <b>806</b> including alphanumeric and function keys coupled to the bus <b>800</b> for communicating information and command selections to the central processor(s) <b>801</b>, a cursor control device <b>807</b> coupled to the bus for communicating user input information and command selections to the central processor(s) <b>801</b>, and a signal generating device <b>808</b> coupled to the bus <b>800</b> for communicating command selections to the processor(s) <b>801</b>.
The foregoing descriptions of specific embodiments of the present invention have been presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed, and obviously many modifications and variations are possible in light of the above teaching. The embodiments were chosen and described in order to best explain the principles of the invention and its practical application, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the Claims appended hereto and their equivalents.
Contents5
9 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9
Every citation, both waysCites: the store holds 16 of 17
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US11061532B2 | Cited by | United States of America | Applicant |
| US8543908B2 | Cited by | United States of America | Search report |
| US11580476B1 | Cited by | United States of America | Search report |
| US9384183B2 | Cited by | United States of America | Search report |
| FR3110740A1 | Cited by | France | Applicant |
| US10997361B1 | Cited by | United States of America | Applicant |
| US11029815B1 | Cited by | United States of America | Applicant |
| US2011016359A1 | Cited by | United States of America | Pre-grant |
| US10928978B2 | Cited by | United States of America | Applicant |
| US10936981B2 | Cited by | United States of America | Search report |
| US2012254723A1 | Cited by | United States of America | Pre-grant |
| US10845947B1 | Cited by | United States of America | Applicant |
| US11836441B2 | Cited by | United States of America | Applicant |
| US11455458B2 | Cited by | United States of America | Applicant |
| US9811248B1 | Cited by | United States of America | Applicant |
| US10809877B1 | Cited by | United States of America | Applicant |
| US12175186B2 | Cited by | United States of America | Applicant |
| US10762280B2 | Cited by | United States of America | Applicant |
| US12045560B2 | Cited by | United States of America | Applicant |
| US8887291B1 | Cited by | United States of America | Search report |
| US11157682B2 | Cited by | United States of America | Applicant |
| US10896286B2 | Cited by | United States of America | Applicant |
| US11080469B1 | Cited by | United States of America | Applicant |
| US10963138B1 | Cited by | United States of America | Applicant |
| US11151304B2 | Cited by | United States of America | Applicant |
| US10845946B1 | Cited by | United States of America | Applicant |
| US10860173B1 | Cited by | United States of America | Applicant |
| US9372933B2 | Cited by | United States of America | Applicant |
| US10866691B1 | Cited by | United States of America | Applicant |
| US12443671B2 | Cited by | United States of America | Applicant |
| US11194456B1 | Cited by | United States of America | Applicant |
| US9268753B2 | Cited by | United States of America | Applicant |
| US11727195B2 | Cited by | United States of America | Applicant |
| US10867120B1 | Cited by | United States of America | Applicant |
| US2002103914A1 | Cites | United States of America | Search report |
| US2002156799A1 | Cites | United States of America | Search report |
| US2003187724A1 | Cites | United States of America | Search report |
| US2004148568A1 | Cites | United States of America | Search report |
| US2009113287A1 | Cites | United States of America | Search report |
| US6029182A | Cites | United States of America | Search report |
| US6138157A | Cites | United States of America | Search report |
| US6324511B1 | Cites | United States of America | Search report |
| US6470383B1 | Cites | United States of America | Search report |
| US6665642B2 | Cites | United States of America | Search report |
| US6714963B1 | Cites | United States of America | Search report |
| US6792475B1 | Cites | United States of America | Search report |
| US6959326B1 | Cites | United States of America | Search report |
| US7058887B2 | Cites | United States of America | Search report |
| US7162526B2 | Cites | United States of America | Search report |
| US7216298B1 | Cites | United States of America | Search report |
| Cast, Bobby, Apr. 7, 2002, http://web.archive.org/web/20020202032250/www.cast.org/bobby/, pp. 1-11. | Non-patent | – | Search report |
| Bohman, Paul R., WebAIM Section 508 Checklist, http://www.webaim.org/standards/508/checklist, Mar. 29, 2001, pp. 1-7. | Non-patent | – | Search report |
2 members in 1 office
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 14609902 | United States of America | A | |
| US20020146099 | – | – | – |
Members2
| Document | Office | Kind | |
|---|---|---|---|
| US2009113287A1 | United States of America | A1 | |
| US8090800B2This record | United States of America | B2 |
96 transactions on the USPTO file
Allowed after 4 non-final rejections, 2 final rejections and 2 RCEs.
- Non-final rejections
- 4
- Final rejections
- 2
- RCEs
- 2
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 12th Year, Large EntityM1553 | M1553 | |
| Payment of Maintenance Fee, 8th Year, Large EntityM1552 | M1552 | |
| Post Issue Communication - Certificate of CorrectionN423 | N423 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Dispatch to FDCD1935 | D1935 | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for Allowance | – | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Mail Advisory Action (PTOL - 303)MCTAV | MCTAV | |
| Advisory Action (PTOL-303)CTAV | CTAV | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Final ActionA.NE | A.NE | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to Examiner | – | |
| Date Forwarded to Examiner | – | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Mail Advisory Action (PTOL - 303)MCTAV | MCTAV | |
| Advisory Action (PTOL-303)CTAV | CTAV | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Oath or Declaration Filed (Including Supplemental)C602 | C602 | |
| Response after Final ActionA.NE | A.NE | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| PG-Pub RequestPG-RQST | PG-RQST | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Correspondence Address ChangeC.AD | C.AD | |
| Rescind Nonpublication Request for Pre Grant PublicationRESC | RESC | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Mail Notice of Rescinded AbandonmentAbandonedMNRAB | MNRAB | |
| Notice of Rescinded Abandonment in TCsAbandonedNRAB | NRAB | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Mail-Petition to Revive Application - GrantedMPREV | MPREV | |
| Petition to Revive Application - GrantedPREV | PREV | |
| Oath or Declaration Filed (Including Supplemental)C602 | C602 | |
| New or Additional Drawing FiledC614 | C614 | |
| Response after Non-Final ActionA... | A... | |
| Petition EnteredPET. | PET. | |
| Mail Abandonment for Failure to Respond to Office ActionAbandonedMABN2 | MABN2 | |
| Aband. for Failure to Respond to O. A.AbandonedABN2 | ABN2 | |
| Correspondence Address ChangeC.ADB | C.ADB | |
| Untimely (Late) Amendment Filed | – | |
| Untimely (Late) Amendment Filed | – | |
| Oath or Declaration Filed (Including Supplemental)C602 | C602 | |
| Mail Notice of Informal or Non-Responsive AmendmentNINA | NINA | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Informal or Non-Responsive Amendment after Examiner ActionA.I. | A.I. | |
| Response after Non-Final ActionA... | A... | |
| Mail Notice of Informal or Non-Responsive AmendmentNINA | NINA | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Informal or Non-Responsive Amendment after Examiner ActionA.I. | A.I. | |
| Response after Non-Final ActionA... | A... | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| IFW TSS Processing by Tech Center CompleteTSSCOMP | TSSCOMP | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Application Is Now CompleteCOMP | COMP | |
| Receipt of all Acknowledgement Letters | – | |
| Additional Application Filing FeesADDFLFEE | ADDFLFEE | |
| Small Entity Statement (37 CFR 1.27)SES | SES | |
| Applicant has submitted new drawings to correct Corrected Papers problemsCORRDRW | CORRDRW | |
| Corrected PaperCPAP | CPAP | |
| Referred by L&R for Third-Level Security Review. Agency Referral Letter Generated | – | |
| IFW Scan & PACR Auto Security Review | – | |
| IFW Scan & PACR Auto Security Review | – | |
| Initial Exam Team nnIEXX | IEXX |
8 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Maintenance fee paymentMAFP | MAFP | |
| Fee paymentFPAY | FPAY | |
| Certificate of correctionCC | CC | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS |
Numbers
- Publication
- 08090800
- Publication, DOCDB
- 8090800
- Publication, EPODOC
- US8090800
- Application
- 10146099
- Application, DOCDB
- 14609902
- Application, EPODOC
- US20020146099
Titles
- English
- Method and system for automated web page accessibility coding standards analysis
Patent term adjustment
- A delay
- +843 daysthe office missed an examination deadline
- B delay
- +1,464 dayspendency past three years
- Overlap
- −121 daysdelays counted once
- Applicant delay
- −1,127 days
- Net adjustment
- 1,059 days
Classification
- CPC, 1
- G06F16/9574
- IPC, 3
- G06F15 16
- G06F3 00
- G06F17 00
- USPC, 10
- 709219000
- 709203000
- 715201000
- 715202000
- 715205000
- 715234000
- 715235000
- 715729000
- 715731000
- 715865000