A lot of research has been done on tactile graphics and the subcategory tactile diagrams.
The main idea behind this projects concept is the translation of diagrams into a format that is printable on a braille embosser, from now on called braille diagrams in contrast to other forms of 'tactile diagrams' which are meant to be printed on a tactile printer.
Similar projects have already been done but most focus on the braille based representation of graphics in a way equivalent to ASCII art and there is not nearly as much information about the criteria for 'good' braille diagrams, as there is for tactile diagrams. So the simplest approach seems to be taking the existing guidelines regarding the creation of tactile diagrams and applying them on braille diagrams. Before this can be done, the main differences between regular tactile printing and braille embossing have to be identified.
Main differences of different embosser types
The usage of braille embossers instead of tactile printers introduces some differences that have an impact on the design of diagrams (and graphics in general), some depending on the embossers abilities:
no equidistant grid
no different intensity levels
smaller print area
The main consequences are:
lower information density (e.g. fewer diagram elements)
A complete list of criteria for tactile diagrams that are partially derived from general criteria regarding tactile graphics is given in 'Kriterien zur Erstellung taktiler Diagramme und Diagrammbeschreibungen.'. (Engel, C.) In the following, the given definitions from this list are applied under the previously identified differences when using braille embossing instead of tactile printing. Most guidelines can be directly applied to our use case, but there are some specific particularities.
The dot spacing has an impact on the maximum resolution, thicknesses and lengths. For the following list, the 6-dot braille ANSI standard ('American National Standard: Accessible and Usable Buildings and Facilities: 2003: Standard and Commentary. ICC/ANSI A117.1-2003. P151-163.', https://codes.iccsafe.org/content/ICCA117_12003/chapter-7-communication-elements-and-features#ICCA117.1_2003_Ch07_Sec703) is assumed, but on an equidistant grid. This means that between all neighboring dots a vertical and horizontal distance of 2.5mm from center to center is assumed. Dots have a diameter of 1.5mm. There are no additional distances between symbols and lines.
The following table lists the important requirements:
in braille, containing diagram type
top-left horizontal alignment
maximum of 2 lines
no real continuous line possible
requirement for tactile diagrams is minimum thickness of 1 mm
such small resolutions are not possible with braille. Instead, use thickness of 1 dot (1.5mm)
axis name (possibly including unit) in braille
value range divided by tick marks, values in braille
on separate sheet
depiction on same sheet mostly impossible because of lack of space
repeat diagram title for association
label as legend
legend symbols left aligned, right-hand captions
minimum symbol size: 25mm height x 12.5mm width
corresponds to 10 x 5 dots.
symbol group order: area-textures, line-styles, point-symbols, alphabetic keys, numeric keys
order inside groups corresponding to occurrence in reading direction
symbols on equivalent scale on both sheets
only if necessary for context, with recommended grid size of 20mm
corresponds to 8 dots
lower resolution than axis tick marks possible
clearly distinguishable from other diagram contents
problem: few line-styles available, consider 'negative' lines
grid should be explained in legend
no other captions in diagram area beside from: title, axis names, axis values
braille always horizontally aligned
describe context, remarks and adaptions of the diagram
same space problem as with legend, consider placing annotations on separate sheet or maybe on legend sheet if possible.
The following example shows simple different line styles that are realized with dots on an equidistant grid. The lines differ in thickness from 1 to 3 dots (1.5mm - 6.5mm) and each thickness is depicted as solid, dotted and dashed variant.
Taking the low resolution of the grid into account, it becomes clear, that thicker lines become impracticable very soon. For a thickness of 3 dots, a single line dash already has a length of 1.4 centimetres in this example and the line consumes a lot of space. For our specific use case, styling options for lines of the smallest thickness (1 dot) are interesting, for example by using them in an axis aligned texture.
A set of basic recommended textures for tactile graphics (Prescher, D. and Bornschein, J., 2016) has been applied to the dot grid in the example below, by filling a 10 by 10 square (2.4cm side length) with the respective texture. The exact pattern spacings had to be manipulated partially, because of the lower resolution. From left to right, the depicted textures in the upper row are called 'full_pattern', 'horizontal_line', 'vertical_line', 'diagonal_line1' and 'diagonal_line2'. The lower row shows the textures 'dashed_lines', 'grid_pattern', 'dotted_pattern', 'stair_pattern' and an empty box for comparison.
The original purpose of the textures - to create distinguishable areas on a tactile graphic - is of course relevant for this specific use case, but it has to be extended further. Since it is hard to add regular grid lines to a braille diagram, the texture should also be suitable to give an implicit scale, so that the dimensions of a tactile object can also be determined if the object is far from the nearest axis. (For example in a bar chart.)
For this purpose, a texture needs to include a distinguishable consistent component, that is orthogonal to the coordinate systems axis and can be aligned with the axis units. For this reason, the full_pattern (no distinguishable components inside), the diagonal_line textures (not orthogonal) as well as the stair_pattern (orthogonal but not consistent) aren't suited.
The remaining textures are the 'dotted_pattern', 'dashed_lines', 'horizontal_line' or rather 'vertical_line' - depending on the orientation of the measured dimension - as well as the 'grid_pattern' which is 90 degree rotationally symmetric and can 'measure' both dimensions at once, since it is essentially a regular grid line.
Braille Embossers - State of the Art
Each embosser comes with its own set of features depending on the manufacturer and model. Still, three general modes of operation can be distinguished.
Modes of operation
The text mode is the most basic and least powerful way to operate an embosser. It is however the only mode that can be safely assumed to be supported by every braille embosser and therefor of great importance for the design of concrete diagram prototypes.
Text mode operation of a braille embosser is typically done by sending an ASCII formatted string of characters in the form of a raw byte array to the printer although there can be exceptions for some specific models. By sending a basic text, consisting exclusively from printable characters, the text will be embossed with the embossers current or default settings. Each ASCII character is transformed into a braille character based on a mapping table.
Typically the embosser settings can be adjusted directly via this text interface by sending a specific control sequence. The available settings are depending on the embosser model, but characteristic settings are:
Models with even more sophisticated control sequences allow to change the context of the input interpretation by entering a different operational mode.
(Give examples control sequences: Everest and Basic D; cite manual)
This mode is based on a predefined bitmap like equidistant grid. Research suggests that this mode is supported by a multitude of embossers, even older and lower-range price segment models.
This mode of operation is typically entered by sending the respective control sequence to the text interface. The context of the input interpretation is then switched and a 'monochrome' raster image can be sent in the form of a byte stream where each byte encodes eight consecutive dots although there can be exceptions for some specific models.
Further settings like the grid spacing can be enabled for this mode.
Floating Dot Mode
The floating dot mode works by defining single dots inside a two-dimensional cartesian coordinate system. While in the graphics mode the sent input represents the states of dots with predefined positions, in this mode the input represents the positions of dots with a predefined state (active). Dot positions in this mode are basically not bound to any grid at all, aside from the minimum technical resolution of the embossing hardware, which for example is around 50 micrometers for the Index Everest-D V4.
Similar to the graphics mode, this mode is also entered by sending a specific control sequence. The input must be an ASCII formatted list of points in the coordinate system although there can be exceptions for some specific models. Again, further special settings can be applied.
The existence of different operational modes deeply impacts the design of concepts and software in this project. It means, that there is no way to build a single concept or a single implementation that will give optimal results on every embosser. It is however possible to design a single basic concept and implementation that may not be giving optimal results, but will be working on every embosser. By keeping an extendable software design, better results can be achieved on specific models by further specialization. This principle of an generalized extendable approach should be a guideline for the whole conceptual design and software design.
It can be achieved by designing a basic solution under the assumption that only an unevenly spaced grid comprised of braille characters and lines (text mode operation) is available and the subsequent specialization towards an equidistant grid of arbitrary resolution.
In this chapter a general approach towards concrete prototypes of braille-embossable diagrams is used. The basic elements that are relevant for the prototype designs are the previously derived guidelines, known line styles and textures and of course the three identified printing modes.
By recapitulating the three modes and considering the respective implications on the possible representations, it becomes very clear that different concepts are required for different modes of operation.
The following prototypes are designed under the criteria from the previous list. A standard A4 sheet (297mm x 210mm) with a 10mm margin from all sides is assumed as available area for the diagram and the same for the legend. This leaves an area of 110 dots x 76 dots per sheet.
Since this work is about creating a software which is able to display a variety of diagrams via braille embossing and it is required to be extendable, a general approach to the conversion of diagram data in some form into a printable text output - such that it can be directly sent to an embosser - is needed.
This requires a well-defined pipeline describing in which formats data will enter the system, which steps of processing it will undergo and in which formats it can be exported.
In the chapter Software Design an overview on this pipeline is given.
To keep this chapter purely about the conceptual part, a short analysis will be done to differentiate the various elements of the braille diagrams and in which group each element belongs: shared reusable elements or diagram type specific ones. It is also important to keep in mind that while this text will only deal with the implementation of three diagram types - namely line diagram, bar chart and scatter plot - a main goal is to keep the software extendable for all sorts of diagrams.
A lot of known diagram types including their associated legends are potentially using the following elements independent from the actual diagram type:
Texts (e.g. for titles, captions, explanation texts)
Textures (e.g. in bar charts, pie charts)
Axes (e.g. in line diagrams, scatter plots)
Other elements seem to be more specific to the actual diagram type:
Curves (line diagrams)
Straight Lines (radar charts)
Points (scatter plots)
Circles (pie charts)
Rectangles (box plots, bar charts)
This means that the reusable elements texts, axes and textures should be developed in their own concepts, such that the 'higher-level' concepts for specific diagram types can then include them in an efficient way.