[LON-CAPA-cvs] cvs: doc /loncapafiles loncapafiles.lpml loncom/node.js/axe browser.js

raeburn raeburn at source.lon-capa.org
Wed Jul 15 20:31:10 EDT 2026


raeburn		Thu Jul 16 00:31:10 2026 EDT

  Added files:                 
    /loncom/node.js/axe	browser.js 

  Modified files:              
    /doc/loncapafiles	loncapafiles.lpml 
  Log:
  - Accessibility testing using axe-core and puppeteer (node.js) using a
    headless chromium web browser.
  
  
Index: doc/loncapafiles/loncapafiles.lpml
diff -u doc/loncapafiles/loncapafiles.lpml:1.1094 doc/loncapafiles/loncapafiles.lpml:1.1095
--- doc/loncapafiles/loncapafiles.lpml:1.1094	Wed Jul 15 03:38:16 2026
+++ doc/loncapafiles/loncapafiles.lpml	Thu Jul 16 00:31:10 2026
@@ -2,7 +2,7 @@
  "http://lpml.sourceforge.net/DTD/lpml.dtd">
 <!-- loncapafiles.lpml -->
 
-<!-- $Id: loncapafiles.lpml,v 1.1094 2026/07/15 03:38:16 raeburn Exp $ -->
+<!-- $Id: loncapafiles.lpml,v 1.1095 2026/07/16 00:31:10 raeburn Exp $ -->
 
 <!--
 
@@ -5174,6 +5174,15 @@
   </description>
 </file>
 <file>
+  <source>loncom/node.js/axe/browser.js</source>
+  <target dist='default'>home/httpd/node.js/axe/browser.js</target>
+  <categoryname>interface file</categoryname>
+  <description>
+    JavaScript to manage headless chromium browser for Accessibility 
+    Checking using Node.js, puppeteer, and axe-core.
+  </description>
+</file>
+<file>
   <source>loncom/node.js/axe/package.json</source>
   <target dist='default'>home/httpd/node.js/axe/package.json</target>
   <categoryname>interface file</categoryname>

Index: loncom/node.js/axe/browser.js
+++ loncom/node.js/axe/browser.js
//
// $Id: browser.js,v 1.1 2026/07/16 00:31:10 raeburn Exp $
//
// This is a javascript library for managing a headless
// chromium web browser.  It relies puppeteer (node.js).
//
// Functions
// -------
// getBrowser()
// closeBrowser()
//
const puppeteer = require('puppeteer');
let browserInstance = null;

async function getBrowser() {
  if (!browserInstance) {
    const pathToChromium = '/usr/bin/chromium-browser';
    browserInstance = await puppeteer.launch({
        executablePath: pathToChromium
    });
  }
  return browserInstance;
}

async function closeBrowser() {
  if (browserInstance) {
    await browserInstance.close();
    browserInstance = null;
  }
}

module.exports = { getBrowser, closeBrowser };




More information about the LON-CAPA-cvs mailing list