This frontend prototype constitutes the practical component of my master's thesis in the Computing in the Humanities program at the Otto-Friedrich-University of Bamberg. The thesis aimed to facilitate the implementation of cognitive accessibility for web developers through a structured guideline. This prototype applies that guideline by extending selected components of an application called BAULA.
Some features were built with the help of GitHub Copilot (AI). Search for "Remark" to get an overview over these code snippets.
The application language is German. The code language is English.
The deployed application is available here.
v25.2.1 or higher)Clone the repository:
git clone https://github.com/ElenaLaubinger/Cognitive-A11Y-Prototype.git
Install dependencies:
npm install
npm run prepare
npm run prepare compiles the SMUI theme to src/styles/smui.css and should be run
after the first installation and after changes to the SMUI theme.
The following are the most relevant parts of the project:
š src/
⣠š app.css # global CSS coordinator
⣠š App.svelte
⣠š dummy_data.json
⣠š lib/
⣠š helper_modules/ # accessibility-supporting modules
⣠š management/ # global states, data processing, persistence
⣠š module_catalog/ # filters, module cards, modal dialogs
⣠š navbar/ # navigation
ā š search/ # module and app-wide search
⣠š routes/ # page layouts
ā š styles/ # SMUI theme + global styles
Development server
npm run dev
Development server with network access
npm run expose
The network-accessible development server runs on port 5173.
Build & Preview
npm run build
npm run preview
src/lib/management/StateManager.svelte.js ā state variables used across the applicationsrc/lib/management/SharedFunctions.svelte.js ā functions used across the applicationsrc/module_data.jsonsrc/lib/management/DataProcessor.svelte.js.src/lib/routes/SettingsLayout.svelteprofileSetting is updatedprofileModules - stores basic modules profileSection - stores module sections profileChair - stores chairssrc/lib/module_catalog/module_filter/Filter.svelte.js (functionality) and the .svelte components in src/lib/module_catalog/module_filter/ (UI)src/lib/search/module_search/ModuleSearch.svelte.js (functionality) and src/lib/search/module_search/SearchFull.svelte (UI)moduleName and moduleAlias (module acronym)filteredModules stores modules based on active search and filter termssearchActive/filterActive) is checked so that only one feature is resetsrc/lib/search/app_search/ApplicationSearch.svelte.js (functionality) and
src/lib/search/app_search/SearchIcon.svelte (UI)src/lib/search/SearchShared.svelte.js<h1> headingssrc/lib/management/Persistence.svelte.jssessionStorage under the key baula-sessionDefined in src/App.svelte:
/ or /dashboard ā Dashboard/modulkatalog ā Module Catalog/einstellungen ā Profile Settings/links ā Quick Links* ā Not FoundThe application uses hash-based routing (#/...).
npm run prepare again.baula-session)