I’ve been working a bit more around this notion of creating “themes” to improve visible accessibility options. This started with an initial implementation that included the default interface and then a High Contrast interface. Over the past few days, I’ve been getting a wide range of feedback, and one of the things that is becoming apparent is that folks would like to have a wide range of preferences. So, this afternoon, I spent time taking the hardcoded default and high contract themes, and rewriting all non-default UI implementations as themes.
When I think about theming, I immediately start thinking about the operating system themes, or themes that you can download for browsers. At this point, we aren’t talking about anything quite so complex. In fact, until I get feedback, I’ll be keeping theming light weight – but I think that in the long run, this might actually make them more useful.
How do they work? Essentially, a theme is going to be the implementation of an XML file. Here’s the dark (high contract) theme written out in the new xml theme structure.
<?xml version=”1.0″ encoding=”utf-8″ ?>
<name>Dark (High Contrast) Theme</name>
<!–Use HTML web color codes for these values–>
<behavior> [set to always, hover, none]
As you can see, the initial implementation of theming is very limited. Essentially, users can theme font color and background colors globally, at the MarcEditor level, and override options for menus and links found within the program. This may (and likely) will be extended prior to the release of MarcEdit 7, but I don’t anticipate it being enhanced a lot. While the new GUI rendering engine makes this kind of work easier, I don’t want to develop an entire rendering process around this method until I know there is more than a passing interest.
What this means, however, is that I can quickly create new themes. Right now, I’ve implemented this in the Options dialog. You can see the current line of thinking below:
Using the Main Windows of MarcEdit 7 as the example page, I’ll run through the current themes that I’ve marked up:
Default Theme (hardcoded):
Dark (High Contrast) Theme:
Dark Gray Theme:
All these themes were created using the theming xml files. As I say, if I get feedback, I’ll look to expand this as we move towards the official release.