GithubHelp home page GithubHelp logo

ucfopen / crossword-materia-widget Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 7.0 6.67 MB

A Materia quiz and study tool that uses words and clues to randomly generate a crossword puzzle

License: GNU Affero General Public License v3.0

PHP 6.59% CoffeeScript 55.61% HTML 11.12% JavaScript 4.60% SCSS 22.07%
materia-widget

crossword-materia-widget's People

Contributors

cayb0rg avatar clpetersonucf avatar dependabot[bot] avatar frenjaminbanklin avatar iturgeon avatar jaxbot avatar nathaned avatar skeezyheat avatar williamradfunk avatar zachberry avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

crossword-materia-widget's Issues

Player accessibility improvements

  • Tab index is overridden with discrete values > 1, which should be reverted to a default tab flow
  • Many DOM elements are not representative of their actual role, or do not have appropriate roles applied
  • Focusable element navigation and flow is inconsistent with ARIA standards
  • Not all focusable elements have a :focus style applied
  • Improvements should be made to clue selection and board navigation

Foreign language support

Currently it's possible for just about any unicode character to be used in Crossword. A crossword puzzle can be created in Russian, for example - the characters can be provided to the creator and a puzzle will be generated properly, and (it looks like) scoring will work properly as well.

Currently the Crossword player has an explicit list of characters that are considered 'allowed input'. These include the 0-9 digits, all English letters, and a number of accented characters common to western European languages. Any character included in a puzzle that is not in that list will be pre-filled and non-editable.

Consider keeping the current set of 'allowed characters' as a 'standard' set but also scraping additional characters from the qset to generate a 'all possible characters for this puzzle' list. Or potentially allowing widget creators to configure a list of allowed/disallowed characters.

Whitespace can be unintentionally added in player responses

While the player does a good job of preventing whitespace in most student inputs, there is one circumstance where it isn't explicitly prevented: when a user is focused on a character slot that was previously filled out, for example where words intersect. A user can enter whitespace characters and then use the arrow keys or cursor to manually select the next character slot, which results in malformed response strings being sent to Materia for scoring.

Selecting words in the player via their hint on the right is broken and inconsistent

To reproduce:

  1. Load up a crossword instance
  2. Attempt to select different words by selecting the hint on the right-hand side (not the button, but the entire hint)

Depending on the index of the word in the list, some hints may not be selectable, or an entirely different hint may be selected instead. The selection will bounce around unpredictably.

Various Improvements to Crossword Widget

  • Fix for scoring dashes
  • Fix for different "special characters" appearing than selected
  • Allow enter key to be pressed to jump to next word
  • Fix for words with special characters as first letter not being able to be selected
  • _checkIfDone() fix

Working on a fix for words that are connected by their first letters. This intersection causes two numberlabels to be applied in the same place, making them overlap. Simple solution is to make vertical numberlabels left-aligned. Better solution is to change how the numbers are created so that they share the same number.

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.