Giter Club home page Giter Club logo

brailler's Introduction

The BrailleR package is a collection of tools to make use of R a happier experience for blind people.

BrailleR version numbers are of the form a.b.c, where a is the major version b is the minor version, and c is the pactch version. From July 2023, the version number starts with a 1 because development over ten years means we believe the package delivers on the original aims of the BrailleR Project. The minor version is odd for development and even for CRAN releases. Patch version increments just help track progress.

The BrailleR package does have dependencies, all of which are available on CRAN.

Dependencies

Github version

Last commit badge

CRAN_Status_Badge

CRAN checks

Downloads per month

Release version

R build status

Blind people's use of R

Blind people cannot use RStudio and depending on the combination of operating system and screen reading software we choose to use, we might have differing levels of success with the standard R GUI.

R is perhaps the most blind-friendly statistical software option because all scripts can be written in plain text, using the text editor a user prefers, and all output can be saved in a wide range of file formats. The advent of R markdown and other reproducible research techniques can offer the blind user a degree of efficiency that is not offered in many other statistical software options. In addition, the processed Rmd files are usually HTML which are the best supported files in terms of screen reader development.

Specific objectives of BrailleR

  1. Make accessing output simpler.
  2. Gain access to the content depicted in a graph.
  3. Make it easier for blind users to create their own R markdown documents.
  4. Replace the tasks other users can do quickly using the RStudio IDE.

If these criteria are all met, then the BrailleR package can support blind people through their first courses in statistics, and perhaps/hopefully into second or third courses.

Installation of BrailleR

Use the following commands if using the CRAN version of BrailleR:

chooseCRANmirror(ind=1)
install.packages("BrailleR")

Or, if the CRAN version is not recent enough or your liking:

chooseCRANmirror(ind=1)
install.packages("remotes")
remotes::install_github("ajrgodfrey/BrailleR", upgrade=TRUE, quiet=TRUE)

You can help

Any assistance to fill in the numerous gaps in what BrailleR delivers will be most gratefully received. As the primary developer of this package is himself blind, attempts to find out if the tools being created actually do replace visual elements or tasks requires a sighted person to sit alongside to offer commentary.

Code of Conduct

Please note that this project is released with a Contributor Code of Conduct. By participating in the BrailleR Project, you are agreeing to this code of conduct. Please check you agree with its terms before participating.

Wish list

Some issues to resolve:

  1. Get extra bits of information for WTF() coming through, such as other shapes, lines etc.
  2. ascertain which shiny app widgets are useful for blind users' screen reading software.
  3. link various plot objects to sonify package.
  4. get more graphics ready for making into SVG for use on Tiger products; mostly in SVGThis() method
  5. Get more Graph types working with the additional XML to make them interactive.
  6. get graph files named properly by TwoFactors(); including boxplots etc vs each factor not both.
  7. In OneFactor() and TwoFactors(): ensure that boxplots are created for each factor unless a level is short of reps.
  8. WTF() doesn't pick up multiple outliers in boxplot() as more than one point
  9. fix VI.lm to cater for the weighted lm case.
  10. check the css is working for VI.lm()
  11. work out how to change colours in R console for low vision users as commands and/or settings
  12. create function to re-create vignettes from Rnw source into HTML
  13. Multiple language support was started but is in serious need of some love.
  14. Functions for the VI method to be completed include: VI.prcomp(), VI.factanal(), VI.glm(), VI.htest()?

brailler's People

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  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

brailler's Issues

duplicate words in the first line of the VI-output

There are duplicate words in the first line of the VI-output. "with the title:" is output twice.

library(BrailleR)
x <- rnorm(1000)
my_plot <- hist(x, plot = TRUE, main = "my histogram")
BrailleR::VI(my_plot)

WriteR.pyw does not take a file as an argument

Hello,

Opposed to the description file, the current version of WriteR.pyw does not allow users to pass a filename as an argument to open in.

I have tested this using Windows command line like below:

python WriteR.pyw test.Rmd

It should create "test.Rmd" in the current working directory and open it with WriteR; however, it does not work as expected.

TimeSeriesPlot does not work with ggplot

The TimeSeriesPlot is defaulted to use ggplot.

However, the code to actually make it with ggplot is missing.

The ggplot functionality was added here: 273c414

This can easily be fixed by passing the parameters to ggplot just like with ScatterPlot and such.

Failure to pick up the correct axis labels if using xlab() and ylab()

If BrailleR is loaded after the tidyverse functions xlab() and ylab() also do not work on the graph. In the start up notes it mentions "The following objects are masked from ‘package:ggplot2’: xlab, ylab" which suggests that these are used for a different purpose in BrailleR and may need re-naming throughout to be compatible.

Move the whiskers templates from html to md

In recent dev work, I have made both BrowseSVG() and ViewSVG() use whiskers templates.

In doing so I moved ViewSVG away from .md in favor of templates being in straight HTML.

Looking at some of the other issues #80 it may be beneficial or not to use .md for the web pages so that they can look better without as much work. On the other hand, it might be more difficult if the changes suggested here #80 go through.

`VI()` function does not extract correct graphic title

When generating text description for R graphics via BrailleR::VI() function, user-defined title is not extracted. It would be better for us to fix this.

Reproducible Example

# Loading package:
library(BrailleR)
#> The BrailleR.View,  option is set to FALSE.
#> 
#> Attaching package: 'BrailleR'
#> The following objects are masked from 'package:graphics':
#> 
#>     boxplot, hist
#> The following object is masked from 'package:utils':
#> 
#>     history
#> The following objects are masked from 'package:base':
#> 
#>     grep, gsub

# Making histogram object with customized title:
x <- hist(airquality$Ozone, main = "test")

# Generating text description:
VI(x)
#> This is a histogram, with the title: Histogram of airquality$Ozone
#> "airquality$Ozone" is marked on the x-axis.
#> Tick marks for the x-axis are at: 0, 50, 100, and 150 
#> There are a total of 116 elements for this variable.
#> Tick marks for the y-axis are at: 0, 10, 20, and 30 
#> It has 9 bins with equal widths, starting at 0 and ending at 180 .
#> The mids and counts for the bins are:
#> mid = 10  count = 37 
#> mid = 30  count = 34 
#> mid = 50  count = 14 
#> mid = 70  count = 15 
#> mid = 90  count = 9 
#> mid = 110  count = 4 
#> mid = 130  count = 2 
#> mid = 150  count = 0 
#> mid = 170  count = 1

Created on 2020-08-28 by the reprex package (v0.3.0.9001)

Session info
sessioninfo::session_info()
#> - Session info ---------------------------------------------------------------
#>  setting  value                       
#>  version  R version 4.0.2 (2020-06-22)
#>  os       Windows 10 x64              
#>  system   x86_64, mingw32             
#>  ui       RTerm                       
#>  language (EN)                        
#>  collate  English_United States.1252  
#>  ctype    English_United States.1252  
#>  tz       America/New_York            
#>  date     2020-08-28                  
#> 
#> - Packages -------------------------------------------------------------------
#>  package      * version    date       lib source                              
#>  assertthat     0.2.1      2019-03-21 [1] CRAN (R 4.0.2)                      
#>  backports      1.1.7      2020-05-13 [1] CRAN (R 4.0.0)                      
#>  BrailleR     * 0.31.0     2020-06-26 [1] Github (ajrgodfrey/BrailleR@59d0949)
#>  callr          3.4.3      2020-03-28 [1] CRAN (R 4.0.2)                      
#>  cli            2.0.2      2020-02-28 [1] CRAN (R 4.0.2)                      
#>  colorspace     1.4-1      2019-03-18 [1] CRAN (R 4.0.2)                      
#>  crayon         1.3.4      2017-09-16 [1] CRAN (R 4.0.2)                      
#>  curl           4.3        2019-12-02 [1] CRAN (R 4.0.2)                      
#>  desc           1.2.0      2018-05-01 [1] CRAN (R 4.0.2)                      
#>  devtools       2.3.1      2020-07-21 [1] CRAN (R 4.0.2)                      
#>  digest         0.6.25     2020-02-23 [1] CRAN (R 4.0.2)                      
#>  dplyr          1.0.2      2020-08-18 [1] CRAN (R 4.0.2)                      
#>  ellipsis       0.3.1      2020-05-15 [1] CRAN (R 4.0.2)                      
#>  evaluate       0.14       2019-05-28 [1] CRAN (R 4.0.2)                      
#>  extrafont      0.17       2014-12-08 [1] CRAN (R 4.0.0)                      
#>  extrafontdb    1.0        2012-06-11 [1] CRAN (R 4.0.0)                      
#>  fansi          0.4.1      2020-01-08 [1] CRAN (R 4.0.2)                      
#>  fs             1.5.0      2020-07-31 [1] CRAN (R 4.0.2)                      
#>  generics       0.0.2      2018-11-29 [1] CRAN (R 4.0.2)                      
#>  ggplot2        3.3.2      2020-06-19 [1] CRAN (R 4.0.2)                      
#>  glue           1.4.1      2020-05-13 [1] CRAN (R 4.0.2)                      
#>  gridGraphics   0.5-0      2020-02-25 [1] CRAN (R 4.0.2)                      
#>  gridSVG        1.7-2      2020-04-28 [1] CRAN (R 4.0.2)                      
#>  gtable         0.3.0      2019-03-25 [1] CRAN (R 4.0.2)                      
#>  highr          0.8        2019-03-20 [1] CRAN (R 4.0.2)                      
#>  htmltools      0.5.0.9000 2020-08-21 [1] Github (rstudio/htmltools@e35c3fa)  
#>  httr           1.4.2      2020-07-20 [1] CRAN (R 4.0.2)                      
#>  hunspell       3.0        2018-12-15 [1] CRAN (R 4.0.2)                      
#>  jsonlite       1.7.0      2020-06-25 [1] CRAN (R 4.0.2)                      
#>  knitr          1.29.4     2020-08-27 [1] Github (yihui/knitr@1465255)        
#>  lattice        0.20-41    2020-04-02 [1] CRAN (R 4.0.2)                      
#>  lifecycle      0.2.0      2020-03-06 [1] CRAN (R 4.0.2)                      
#>  magrittr       1.5        2014-11-22 [1] CRAN (R 4.0.2)                      
#>  Matrix         1.2-18     2019-11-27 [1] CRAN (R 4.0.2)                      
#>  memoise        1.1.0      2017-04-21 [1] CRAN (R 4.0.2)                      
#>  mime           0.9        2020-02-04 [1] CRAN (R 4.0.0)                      
#>  moments        0.14       2015-01-05 [1] CRAN (R 4.0.0)                      
#>  munsell        0.5.0      2018-06-12 [1] CRAN (R 4.0.2)                      
#>  nortest        1.0-4      2015-07-30 [1] CRAN (R 4.0.0)                      
#>  pillar         1.4.6      2020-07-10 [1] CRAN (R 4.0.2)                      
#>  pkgbuild       1.1.0      2020-07-13 [1] CRAN (R 4.0.2)                      
#>  pkgconfig      2.0.3      2019-09-22 [1] CRAN (R 4.0.2)                      
#>  pkgload        1.1.0      2020-05-29 [1] CRAN (R 4.0.2)                      
#>  prettyunits    1.1.1      2020-01-24 [1] CRAN (R 4.0.2)                      
#>  processx       3.4.3      2020-07-05 [1] CRAN (R 4.0.2)                      
#>  ps             1.3.4      2020-08-11 [1] CRAN (R 4.0.2)                      
#>  purrr          0.3.4      2020-04-17 [1] CRAN (R 4.0.2)                      
#>  R6             2.4.1      2019-11-12 [1] CRAN (R 4.0.2)                      
#>  Rcpp           1.0.5      2020-07-06 [1] CRAN (R 4.0.2)                      
#>  remotes        2.2.0      2020-07-21 [1] CRAN (R 4.0.2)                      
#>  reprex         0.3.0.9001 2020-08-22 [1] Github (tidyverse/reprex@d3fc4b8)   
#>  reticulate     1.16-9000  2020-07-31 [1] Github (rstudio/reticulate@e811aec) 
#>  rlang          0.4.7      2020-07-09 [1] CRAN (R 4.0.2)                      
#>  rmarkdown      2.3.3      2020-07-28 [1] Github (rstudio/rmarkdown@204aa41)  
#>  roloc          0.1-1      2018-07-30 [1] CRAN (R 4.0.2)                      
#>  rolocISCCNBS   0.1        2018-08-02 [1] CRAN (R 4.0.2)                      
#>  rprojroot      1.3-2      2018-01-03 [1] CRAN (R 4.0.2)                      
#>  Rttf2pt1       1.3.8      2020-01-10 [1] CRAN (R 4.0.0)                      
#>  scales         1.1.1      2020-05-11 [1] CRAN (R 4.0.2)                      
#>  sessioninfo    1.1.1      2018-11-05 [1] CRAN (R 4.0.2)                      
#>  stringi        1.4.6      2020-02-17 [1] CRAN (R 4.0.0)                      
#>  stringr        1.4.0      2019-02-10 [1] CRAN (R 4.0.2)                      
#>  styler         1.3.2      2020-02-23 [1] CRAN (R 4.0.2)                      
#>  testthat       2.3.2      2020-03-02 [1] CRAN (R 4.0.2)                      
#>  tibble         3.0.3      2020-07-10 [1] CRAN (R 4.0.2)                      
#>  tidyselect     1.1.0      2020-05-11 [1] CRAN (R 4.0.2)                      
#>  usethis        1.6.1.9001 2020-08-03 [1] Github (r-lib/usethis@00e0600)      
#>  vctrs          0.3.2      2020-07-15 [1] CRAN (R 4.0.2)                      
#>  whisker        0.4        2019-08-28 [1] CRAN (R 4.0.2)                      
#>  withr          2.2.0      2020-04-20 [1] CRAN (R 4.0.2)                      
#>  xfun           0.16.1     2020-07-28 [1] Github (yihui/xfun@0f9e1ae)         
#>  XML            3.99-0.5   2020-07-23 [1] CRAN (R 4.0.2)                      
#>  xml2           1.3.2      2020-04-23 [1] CRAN (R 4.0.2)                      
#>  xtable         1.8-4      2019-04-21 [1] CRAN (R 4.0.2)                      
#>  yaml           2.2.1      2020-02-01 [1] CRAN (R 4.0.0)                      
#> 
#> [1] C:/Program Files/R/R-4.0.2/library

ggplot VI cant handle varied coordinate systems

Currently, the VI method will only work if the plots coordinate first calls is either "CoordCartesian" or "CoordFixed".

This means that a plot like:

ggplot(mtcars, aes(mpg,disp)) +
  geom_point() + coord_flip()

Will print out a message like this:

VI cannot process ggplot objects with flipped or non-Cartesian coordinates

I think that the VI method is actually capable of processing different types of Coord systems like flipped with ease.

It seems that

  if (!(.getGGCoord(x, xbuild) %in% c("CoordCartesian", "CoordFixed"))) {
    message("VI cannot process ggplot objects with flipped or non-Cartesian coordinates")
    return(NULL)
  }

At the start of .VIstruct.ggplot() and .getGGCoord() need to be updated.

No acknowledgement of the difference between geom_point() and geom_jitter()

When making a scatter graph using ggplot, geom_point() will often not be able to show all the points, particularly if the variables are all integers. VI() will say that there are the total number of points when they aren't truly being displayed by geom_point(). The exact same description is given by by VI() when geom_jitter() has been used, which does display all the points, although slightly offset to where they actually lie.

CRAN removal

Hi @ajrgodfrey, I just saw that you were removed from CRAN. What issues are blocking the package from release there?

Thanks for the great package!

ROBUSTNESS: Use file.path() instead of paste()

I'd like to suggest to use file.path("a", "b") instead of paste0("a/", "b") for constructing path names. This is the recommended approach, especially since it makes no assumptions about whether forward or backward slashes should be used.

You can also vectorize, which I see you need in a few places, e.g. file.path("a", c("b1", "b2")).

pdf2html fails

Running the most recent BrailleR from remotes::install_github("ajrgodfrey/BrailleR", upgrade=TRUE, quiet=TRUE) and the most recent stable Python 3.10.5, pdf2html fails due to incompatibility with unicode

NameError: name 'unicode' is not defined thrown off by File "C:\Program Files\R\R-4.1.0\library\BrailleR\Python\latin2html.py", line 127

Summarise and fleshout SVGs and XMLs of "bar" and "line" type ggplots geoms

Currently, the information is there.

You can step through and find out what bars or lines there are. However, the information isn't filtered or summarised in any way. Meaning that it could be quite hard for a user to actually explore the graph.

Within the lines type, there could be a better job of connecting lines together to make longer lines and thus fewer lines need to be displayed and read.

The bar types are alright but there is no cap on the number of bars that can be displayed.

There is no assigned keystroke for inserting in-line R chunk in WriteR

Hello,

I have found that there is no keystroke assigned for inserting in-line R chunk in WriteR editor.

Of course, you can perform by pressing Alt+S, followed by enter key; however, given that you have assigned a keystroke for inserting a block R chunk in WriteR which is Alt+R, followed by I, having a keystroke for in-line R chunk would be so much instrumental for blind R users.

Thank you very much.

Problem with undo function (ctrl Z)

If you insert anything using the shortcut keys, the ctrl Z function removes only one thing and not everything the shortcut key created (leaves rubbish around). Should be no undo function but windows is giving an undo function.

Splitting Describe and VI help pages and merging VI help pages

Currently, the help page for Describe and VI feels quite cluttered and the functions serve different purposes.

I think that splitting the help page to Describe and VI would make it clearer and more helpful for users.

Then both pages can actually provide more detailed and better-structured information.

Now there would be two VI help pages and I think that they should be merged to make it consistent with one help page per function

XML package casuing windows build to crash

It seems that something has happend aroundt h 5/12/2022 that has caused the build to start failing.

The error given by GitHub is:

── R CMD build ─────────────────────────────────────────────────────────────────
pdflatex not found! Not building PDF manual.

  • checking for file 'D:\a\BrailleR\BrailleR/DESCRIPTION' ... OK
  • preparing 'BrailleR':
  • checking DESCRIPTION meta-information ... OK
  • installing the package to build vignettes
    -----------------------------------
    ERROR: dependency 'XML' is not available for package 'BrailleR'
  • removing 'C:/Users/RUNNER~1/AppData/Local/Temp/Rtmp8aeTKo/Rinst17245f8c7200/BrailleR'
    -----------------------------------
    ERROR: package installation failed
    Error: Error in proc$get_built_file() : Build process failed
    Calls: ... build_package -> with_envvar -> force ->
    Execution halted
    Error: Process completed with exit code 1.

The first point of call will be to try and reduce the imports and see if it still fails.

geom_boxplot not displaying correct description from VI()

The VI method is not picking up on the values for the geom_boxplot.

For example this simple graph

x = rnorm(1e3)
ggplot() +
  geom_boxplot(aes(x=x))

creates:

This is an untitled chart with no subtitle or caption.
It has x-axis 'x' with labels -2, 0 and 2.
It has y-axis '' with labels -0.4, -0.2, 0.0, 0.2 and 0.4.
The chart is a boxplot comprised of 1 box with whiskers.
There is a box at x=.
It has median . The box goes from to , and the whiskers extend to -0.38 and 0.38.
There are 7 outliers for this boxplot.

As can be seen, it is missing all of the specific layer information.

No indication of what type of graph is shown if it is one that VI() cannot process

In general for types of graphs that VI() cannot process, at least give the name of the graph eg. ("This density graph is a type which VI() cannot fully process" for geom_density, "This area graph is a type which VI() cannot fully process" for geom_area)
If this can be generalized it will add some information without fully incorporating these rarer graph types.

VI() always says that the legend is hidden when using scale_fill_continuous()

The default for scale_fill_continuous() is displaying a legend to the right of the graph which is a gradient between the colours used, with numeric indicators on the side to give an idea of what colours correspond to what counts. VI() says "The legend that would normally indicate this has been hidden" when it should not for these graphs.

Add SVG and XML support for multiple layers

The system is set up at the moment to just assume all layers are the same and act accordingly.

Having a way that each layer can be toggled on and off or "stepped" through would be good in the exploration of the graph.

To be able to do this we will probably need to access more information potentially the build object meaning that we might need to be passed the origin graph object as opposed to looking at the displayed graphic.

Offer for side-by-side development

Hi,

Just thought I'd offer my time for side-by-side development as requested in the README. I'm based in the UK, so geography and time-differences are an issue. But if we could work out suitable times and something like a skype call with screenshare, I'd love to help develop the package further.

My email address is [email protected]. Let me know if you want to try and organise something.

non-zero exit status

Hello Everyone,

When installing the BrailleR package I get the following errors. Can you please advise?
I'm using a Mac with OSX10.11.6
RStudio 1.0.153 (but I also get the error when only using R.
R version 3.4.1

Thanks in advance.

  • installing source package ‘gridGraphics’ ...
    ** package ‘gridGraphics’ successfully unpacked and MD5 sums checked
    ** R
    ** inst
    ** preparing package for lazy loading
    Error in system("convert --version", intern = TRUE, ignore.stderr = TRUE) :
    error in running command
    Error : unable to load R code in package ‘gridGraphics’
    ERROR: lazy loading failed for package ‘gridGraphics’
  • removing ‘/Users/michael/Library/R/3.4/library/gridGraphics’
    Warning in install.packages :
    installation of package ‘gridGraphics’ had non-zero exit status
    ERROR: dependency ‘gridGraphics’ is not available for package ‘BrailleR’
  • removing ‘/Users/michael/Library/R/3.4/library/BrailleR’
    Warning in install.packages :
    installation of package ‘BrailleR’ had non-zero exit status

The downloaded source packages are in
‘/private/var/folders/hz/9hbt2vmd2991c77c6b7sw11m0000gp/T/Rtmpkqa72t/downloaded_packages’

Liblouis Text Translation

Hey there! Never thought I'd come across something so related to what I'm doing.

I'm attempting to create a generic R graph, with all text replaced with Unicode Braille characters + the UBraille (public domain) font to allow printing of "most" R outputs with braille text. The print would ultimately be printed on PIAF/Microcapsule paper.

I did a similar thing with a project a few months ago, here: https://git.tait.tech/tait/transcription-tools/src/branch/main/ocr/braille-diagram-tools

Just wondering if there is an easy way, or if your library would be interested in implementing a way to replace all text in an R plot/graph with modified text. Some kind of map_all_text((text) => new_text) function would work perfectly. Figuring out liblouis bindings through some other language would probably be best for a smaller project (like mine).

Anyway, I'm just wondering if this is something you have considered, if this is out of scope for the project, or if perhaps there is already a way to simply do that which I'm unaware of.

Thanks for you time! Keep up the great work!

Suppress the folder path setup

Thank you for this excellent package.

I am a building a workflow to improve the accessibility of my plots, and I would like to use the VI function in BrailleR to automatically generate some boilerplate text that I can then edit to be more specific.

Since I plan on sharing this workflow with my colleagues and also put it up on GitHub, I was wondering if there is a way to suppress the path selection setup functions? Essentially, my package would only invoke the VI function on a plot, so it would be redundant to create a permanent folder, and I would like to avoid unnecessary steps for my users.

Let me know if this is possible, and if not, I'm happy to suggest a solution and/or submit a PR.

Thanks again!

VI() descriptions for geom_histogram() give really inaccurate numbers of bars

VI() for geom_histogram has really weird ideas about numbers of bars. I expect that when sorting by categories it is including any missing category from each bar as a completely missing bar.

eg.
geom_histogram(aes(x, fill=catsOneToSeven), bins=5)

VI() will say that there are 35 vertical bars if there are 7 cats, regardless of whether the colours are included in the bar, and the fact that the default has them stacked and will not leave gaps for missing fill cats.

Change ggplot shape descriptions

Currently, the ggplot VI shapes for geom_point description are descriptive but not in the line with what seems to be the conventional names for the pch.

What we currently have is:
1 open square
2 open circle
3 open triangle
4 plus
5 X
6 open diamond
7 downward triangle
8 boxed X
9 star
10 crossed diamond
11 circled plus
12 six-pointed star
13 boxed plus
14 crossed circle
15 boxed triangle
16 solid square
17 solid circle
18 solid triangle
19 solid diamond
20 big solid circle
21 small solid circle
22 fillable circle
23 fillable square
24 fillable diamond
25 fillable triangle
26 fillable downward triangle

I propose using the convention which is:
pch = 0,square
pch = 1,circle
pch = 2,triangle point up
pch = 3,plus
pch = 4,cross
pch = 5,diamond
pch = 6,triangle point down
pch = 7,square cross
pch = 8,star
pch = 9,diamond plus
pch = 10,circle plus
pch = 11,triangles up and down
pch = 12,square plus
pch = 13,circle cross
pch = 14,square and triangle down
pch = 15, filled square
pch = 16, filled circle
pch = 17, filled triangle point-up
pch = 18, filled diamond
pch = 19, solid circle
pch = 20,bullet (smaller circle)
pch = 21, filled circle blue
pch = 22, filled square blue
pch = 23, filled diamond blue
pch = 24, filled triangle point-up blue
pch = 25, filled triangle point down blue

This means that comparing made graphs with other literature might be more intuitive and simple.

It would also mean that the default shape which is 19 would simple be a solid circle rather than big solid circle which might give the impression that it is larger than other shapes.

Add VI and describe information to SVG webpage?

Would there be interest in adding the VI and describe printout to the BrowseSVG webpage.

This could be done with keyboard shortcuts to let the user quickly access the text when explaining the graph.

GeomPoint points not highlighted correctly in MakeAccessibleSVG

This is because the way that the highlighting is done with diagcess is that it takes the SVG tag and gives it a class.

This class gives it that yellow stroke color.

However, the tags used for the geomPoints are use tags that have a custom definition without any stroke as it will most likely be a circle.

There might be some workarounds but for now, it hasn't yet been solved.

Weird syntax for when coloured fill is used to show groupings

"X is represented by fill brilliant blue" would make more sense as "X is represented by brilliant blue fill."
When colour is used the wording "X is represented by colour brilliant blue" which, while not wrong, would also work as "is represented by brilliant blue colour" I will also look into changing the word "represented" to a shorter synonym to save characters.

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.