Skip to content →

Category: Accessibility

Windows Unattended Install with Parallels and a Simple Machine Manager

Background

Virtual machines, running one computer as an application inside another, still give me that “kid in a candy store” feeling. They allow me to test, experiment, and safely break things; if it all goes horribly wrong, I can just delete the virtual machine and start over. There is no risk of losing computer access or screen-reading functionality.

For the past couple of years, my primary environment has been Parallels on a Mac. I mainly run Windows virtual machines, and Parallels has done a great job of supporting Windows 11 despite its more stringent hardware requirements.

For sighted users, Parallels makes creating a VM easy: you simply choose “New VM,” and there is an option to download a Windows ISO directly from Microsoft. Unfortunately, this part of the Parallels interface (along with several other features) suffers from significant accessibility gaps.

One workaround is to use VOCR, a tool that performs optical character recognition on the screen. It is incredibly handy for this and many other situations where standard screen reading fails.

As someone who originally set out to be a journalist, the combination of AI-assisted code development and my own ideas has been a game-changer. I’ve long said, “I’ll tell you what to build; you build it.” We still have a long way to go, but the progress I’ve seen in just one year is truly amazing.

Another Solution: The Unattended Install

I decided to use AI to improve the Parallels experience. I asked it to help me create a script that would download a version of Windows for ARM hardware, create the Parallels virtual machine, and perform an unattended install so that the OS is ready at the desktop. This essentially replicates what Parallels does natively, but through a more accessible interface.

Managing Machines

Once I had a script that allowed me to trigger a VM creation from the Mac Finder and have a working desktop in 20 minutes, I wanted to go further. Managing existing VMs through the Parallels UI can also be hit-or-miss regarding accessibility.

Parallels does offer a robust command-line utility called prlctl. While powerful, command-line tools can be unforgiving if your syntax is slightly off. To bridge this gap, I went back to the AI and created a very basic Parallels Machine Manager. This utility displays a list of your running machines and provides basic management tasks like starting, stopping, cloning, and deleting. I also integrated the targeted Windows VM creation script directly into the app.

Getting These Tools

You can download the standalone unattended install script here, or download the full Parallels Machine Manager here.

Contributions Welcome

I’ve hosted the script and the app on GitHub in a repository I’m calling The Workbench. You can find it at github.com/kellylford/TheWorkBench.

I create simple solutions like this from time to time and plan to populate this repository with more of them. Contributions—whether to these projects or sharing your own—are more than welcome.

My contributions to this repo are functional, but they are “immediate-need” projects. Once I’ve solved the specific problem I’m facing, I don’t typically invest significant time in extending them. While these tools are valuable, they would require more work to become “production-quality” software.

More Formal Projects

I also maintain a list of more formal projects at www.theideaplace.net/projects. These include:

  • A weather app
  • A sports scores app
  • An image description toolkit
  • A simple RSS reader
Leave a Comment

“Introducing IDT 4.0 Beta 1: An Enhanced Way to Describe Your Digital Images

A 4.0Beta1 release of my Image Description Toolkit is now available. If you are unfamiliar with this project, it provides apps to handle image description using Ollama AI models that can run locally. The toolkit is specifically aimed at handling large numbers of images and videos. The toolkit offers both a command line (IDT) version and a graphical version (ImageDescriber) and allows you to generate descriptions based on a series of predefined prompts or add your own to tailor the sort of information you get back from an AI model. The app also supports OpenAI and Claude models with your own user-supplied API key.

What the Image Description Toolkit Is Not

It is important to understand what the toolkit is not. Countless apps exist for getting image descriptions. I use many myself. Most of these are aimed at describing one or two images though and often the descriptions must be generated new each time you want the image described. IDT is not meant to replace these experiences directly.

What the Image Description Toolkit Is

The IDT is aimed at the situation when you have dozens, hundreds or thousands of photos you want described and you want permanent descriptions of the images. IDT also allows for easy generation of multiple descriptions based on different AI prompts and asking follow up questions. If you want more emphasis on colors in an image for example, you can use the ‘Colorful’ prompt. The ‘Technical’ prompt gives you more details about the image quality. All prompts are customizable and you can add your own prompts to the system.

Quick Start

After installing the IDT, you have two main tools for image description. ImageDescriber is the first option you’ll want to explore for describing smaller groups of images and generating multiple descriptions per image. The default install puts this in ‘c:\idt\imagedescriber.exe’. Load the app, press ctrl+l or choose File:Load Directory and then arrow through images that have been loaded. Press the letter p on any image to process that image or choose Processing:Process All Undescribed to have the full set of images you have loaded described. In either case you’ll be prompted for the AI provider you want to use, the model and prompt. The system defaults to Ollama, Moondream and the Narrative prompt.

The second option is IDT command line. Open a command prompt and change to the default install location of ‘c:\idt’, assuming a standard install. Enter ‘idt guideme’ and the system will ask you a series of questions and then kick off a workflow to describe your images. Alternatively enter ‘idt workflow <path to images>’ and the system will just start describing images using the same defaults as mentioned earlier.

Additional Functionality

In addition to providing image descriptions, both IDT and the ImageDescriber can download images from a web page and provide descriptions. In IDT just enter ‘idt workflow <url>’ and in ImageDescriber press ctrl+u and provide the address of a web page.

ImageDescriber also allows you to ask follow up questions about any image using the original AI provider and model or by selecting another of your choice. Just press f on any image or description in the app.

Monitoring Costs for Paid Models

When using Claude or OpenAI models, the number of tokens used for the AI prompt, which includes the image, as well as the response are also shown as part of the image meta data. Review these to gauge the cost of using the various models from these companies. They publish pricing for the tokens used with different models.

A Basic Chat with AI

Finally, ImageDescriber has a basic chat system that does not require images for any AI models you have installed or configured. Press c when the program is open or choose Process:Chat. Next select your model and the chat experience will open. Enter your question and the AI will respond. You can press shift+tab to go to the chat history. Note, currently the only way to save the chat history is to press ctrl+a and then ctrl+c to copy the full chat and paste it in another app. Work to fully integrate saving of chats into an Image Description Toolkit workspace file is ongoing.

User Guide and Issue Reporting

A full User Guide is available for the IDT. You can also report issues from within the program with the Report an Issue menu item on the Help menu or by visiting the New Issue form on GitHub. Check the list of current known issues as well.

Windows Version Today, Mac Coming Soon

This release is for Windows, with a Mac version coming soon. The Mac version is in fact done and for those who are so inclined you can build it from source on GitHub. Look in the wxmigration branch under MacBuilds for build scripts. I’m not officially releasing the Mac version yet because I am still refining how VoiceOver reads lists within the program and doing further testing.

Getting the Image Description Toolkit

You can download the 4.0Beta1 release directly from my projects page.

2/14 Update on Downloading

My application is currently not code signed. As a result, you may be prompted that the file is untrusted or otherwise not safe to download. I run security checks and such before making my files available and am still researching costs for code signing on Windows. You can try downloading a .zip file with the installer. Unzip the file and run the installer. You’ll still likely have to deal with untrusted warnings but they are a bit easier than doing so as a part of the browser download process. Some browsers may still present the warning experience as well.

Leave a Comment

Basic Accessibility Gaps Still Too Common, Microsoft please justify CopilotNative.Chat.Controls

With the end of the year approaching, I was doing some tax prep. I asked the Windows version of Copilot to convert a final pay summary from my last employer into something that was more readable. To Copilot’s credit, it converted the PDF into a highly accessible Excel spreadsheet. That’s the positive. It is really handy.

Unfortunately, that’s not the full story. In reviewing the conversation, here is how the entry providing my answer reads with a screen reader. Note this is just the start of the answer.

CopilotNative.Chat.Controls.ViewModels.MessageThinkingAndActivityPartCopilotNative.Chat.Controls.ViewModels.MessageDocumentPartYour Excel spreadsheet is ready to go — you can **click the card above to download it**.

I have to ask why this sort of a basic accessibility failure is still making it to customers. Both automated and manual testing could easily find this sort of a failure and likely basic code inspection and automated checking as well at the code level.

People who do not use screen readers would never be shown text like CopilotNative.Chat.Controls and the rest of the long string those of us who do use such technology are offered. This is simply not acceptable.

Sadly, this is still far too often the reality of accessibility though in 2025. It is part of why I wrote my post on Accessibility island years ago at https://theideaplace.net/accessibility-island-the-journey-of-many-experienced-as-one/. It is also why I say the accessibility field, especially at the corporate level, needs to be far more accountable. I wrote about this also at https://theideaplace.net/from-word-fluff-to-real-impact-achieving-specific-measurable-and-accountable-accessibility/.

Some accessibility is more complex to address but these sorts of issues are not. All it takes is commitment and attention to the most basic of details.

If you try to reproduce this, the issue seems to occur when Copilot is producing downloadable content. Of course, the Windows Copilot app still serves at best half an answer to screen reading users in my opinion in general.

Yes, it is true that AI, as with many technologies, has done many innovative things for accessibility. But the full story should be positive, not just the innovations. These tools still need sizable attention because the basics of accessibility within many of these tools still falls short.

Leave a Comment

Image Description Toolkit 3.6.0 Available

A 3.6.0 release for my Image Description Toolkit is now available. The release features a new –redescribe option as well as support for two Microsoft Florence-2 models via Hugging Face.

Redescribe

The redescribe option can be used with the command line version of the toolkit to redescribe the same set of images without the need to extract video frames or convert image files to JPG from HEIC. This can save time and allow you to quickly test different prompts on the same set of images. To use the redescribe option, simply add –redescribe as the first option in an “idt workflow” command followed by the standard –provider, –model and –prompt-style options. Use the workflow directory from a previous image description workflow as the file directory for images to be described. Product documentation has full details.

Hugging Face and Florence Models

Hugging Face is described as “The platform where the machine learning community collaborates on models, datasets, and applications.” It contains a wide range of AI models, datasets and apps across the full spectrum of AI tasks.

The Florence-2 AI model is described in part as, “an advanced vision foundation model that uses a prompt-based approach to handle a wide range of vision and vision-language tasks.” It runs locally and requires no pre-installation. Note that the model will download on first use so expect a longer image description time. Also be aware that for a variety of reasons, the Florence-2 model is only supported in the command line version of the Image Description Toolkit.

You can get the latest update for the Image Description Toolkit from my projects page at www.theideaplace.net/projects or the GitHub release page.

2 Comments

Give Accessibility a Seat at the Notepad Table Please

Unreal, I read today that Microsoft has started rolling out table support for Notepad. But guess what, if you are using a screen reader, the fact that you are in a table when editing is not communicated at all. This despite the fact that Office has clearly communicated tables when editing for many years with screen readers, including Narrator. So, clearly technical solutions exist and have been used for a long time. Why is something this basic once again left out for accessibility?

If you are so inclined, you can up vote feedback I submitted on this issue at this feedback link.

This is another example of why I say we need more accountability around accessibility. If Microsoft is going to enhance Notepad, accessibility needs an equal seat at the table, not something missed yet again.

2 Comments

Windows Copilot Serves At Best Half an Answer to Screen Reading Users

If you follow me on social media, one of the themes you’ll find I talk about fairly often related to accessibility is how text that isn’t shown visually needs to have better verification. This can be anything from alt text on web pages, to the accessible names used in different applications for controls such as menus and more. For several months now, the Windows Copilot app has had a serious problem that fits in this category. I know I reported it to Microsoft at the start of March of this year and the problem remains as broken today as it was then.

In this case, the challenge is that the text communicated for accessibility purposes is clipped such that when reviewing answers with Copilot, The answers you receive are incomplete.

If I ask Copilot for a list of the fifty United States, I’m led to believe that there are only 27 states. In the way the list is rendered to a screen reader, the List ends at the State of Nebraska. I guess Wisconsin, where I am writing this from, has disappeared?

If I ask for a list of the U.S. presidents, the list when read with a screen reader only shows 10 presidents and in fact cuts off the last name such that you end up getting only a partial name. At least my history never said we had a president named “10. John T.”

You can try various modes with the different screen readers, such as Narrator’s Scan Mode, the JAWS Touch Cursor and more and the problem is not improved. In most cases, such as Narrator’s Scan Mode, you end up reading some text twice but still never get the full answer.

It should not be necessary to copy a response and paste it into another app just to read the answer from an AI system or any app for that matter.

The frustrating thing is that none of this was an issue at the start of 2025. Microsoft appeared to be coalescing around a fairly standard user experience for the multitude of Copilot experiences available to customers. The foundation for the Windows app was a well-structured HTML experience with headings and more that made reading answers quite straight forward.

Sometime after the start of the year, the Windows Copilot app appears to have changed some of the foundational technology used that has caused this sorry state of incomplete answers when read with a screen reader. One can only wonder how long this busted experience will be allowed to exist. It is already several months too long in my opinion.

To be honest, it is incredibly frustrating to write blog posts like this. I doubt they do much good, but I am not sure what other avenues to pursue. As I said, I reported this situation to Microsoft in early March of this year. Through multiple email exchanges, all I know is that Microsoft claims they are taking the issue seriously.

It is repeated situations like this, where accessibility issues linger on and on where I say we need a shift to true accountable accessibility. I outlined a proposal for such earlier this year as well.

This is just one of several significant accessibility challenges with the Windows Copilot app. I’m a firm believer that all experiences should be usable and accessible, but this is especially true for AI-based situations. We need to be able to access the responses put out from AI effectively and obviously comprehensively.

In fact, if I ask the Windows Copilot app to give me a definition of accessible software, the experience is to me completely unacceptable. Things start out well enough with automatic reading of a message that Copilot is preparing the answer. They then progress to a reading of the beginning of the answer, only to have that reading interrupted by a restart of the reading of the answer that starts over from the beginning, only to read more of the full answer automatically.

Ignoring the multiple tabs or shift+tabs it requires to get from the edit box for communicating with Copilot to the chat history, the answer in the chat history is again clipped from what you heard with the automatic reading. Here is my chat history as read by Narrator when moving to the Copilot chat history for the accessibility prompt and response.

give me the definition of accessible software please.
**Accessible software is software designed to be usable by people with a wide range of disabilities, ensuring equal access to digital tools and content.**
### 🧩 What Accessible Software Means
Accessible software incorporates features and design principles that remove barriers for users with:
– **Visual impairments** (e.g., blindness, low vision, color blindness)
– **Auditory impairments** (e.g., deafness, hard of hearing)
– **Motor impairments** (e.g., limited dexterity, paralysis)
– **Cognitive or neurol

If I copy the answer, you can read just how much is skipped and also the fact that any of the structure, such as lists, is not communicated when reading in the Copilot app. Here is the full copied answer to my question.

Accessible software is software designed to be usable by people with a wide range of disabilities, ensuring equal access to digital tools and content.

🧩 What Accessible Software Means

Accessible software incorporates features and design principles that remove barriers for users with:

  • Visual impairments (e.g., blindness, low vision, color blindness)
  • Auditory impairments (e.g., deafness, hard of hearing)
  • Motor impairments (e.g., limited dexterity, paralysis)
  • Cognitive or neurological conditions (e.g., dyslexia, ADHD, autism)

The goal is to ensure that everyone, regardless of ability, can interact with the software effectively and independently.

🔍 Key Features of Accessible Software

  • Keyboard navigation: All functions can be accessed without a mouse.
  • Screen reader compatibility: Proper use of semantic HTML, ARIA roles, and alt text for images.
  • Color contrast and scalable text: Ensures readability for users with low vision.
  • Captions and transcripts: For multimedia content, aiding users with hearing impairments.
  • Logical structure and focus management: Helps users navigate and understand content flow.
  • Customizable interfaces: Allows users to adjust layout, font size, and input methods.

📐 Standards and Compliance

Accessible software typically adheres to guidelines such as:

  • WCAG (Web Content Accessibility Guidelines) – the global standard for digital accessibility.
  • Section 508 (U.S.) – mandates accessible technology for federal agencies.
  • EN 301 549 (EU) – accessibility requirements for ICT products and services.

🧠 Why It Matters

  • Inclusivity: Promotes equal participation in digital spaces.
  • Legal compliance: Avoids lawsuits and meets regulatory requirements.
  • Better UX for all: Accessibility often improves usability for everyone.
  • Ethical responsibility: Reflects a commitment to social equity and universal design.

If you’d like examples of accessible software in action or want to benchmark a specific app, I can help you analyze it.

2 Comments

Image Description Toolkit 3.5 Beta Featuring Geolocation Data and Web Image Downloads

With more AI-driven development I have another sizable update for my Image Description Toolkit or IDT. There is a full What’s New document available.

Highlights for this beta release include use of geolocation data when present in images, the ability to download images from a specified web address and have them run through the image description system and numerous other enhancements.

You can also keep current with all my projects from my Projects page.

One Comment

Feedback on IDT Demo Gallery

I’m looking to crowd source some feedback. I’ve mentioned here a few times a collection of tools I’ve created called the Image Description Toolkit. The short version of this is that it is a way to get image descriptions that you can save and customize the level of detail you get. This can be a bit of an abstract concept in a world where many still do not understand alt text.

So, I’ve put together a demo page at www.kellford.com/idtdemo. It has the traditional image gallery but then a Description Explorer. The Description Explorer allows you to see how different AI prompts result in various image descriptions and how different AI providers do at image descriptions. There are a total of four prompts (narrative, colorful, technical and detailed) using 10 different AI provider/model combinations.

For example, choose Description Explorer and then the option for all prompts from a provider. Note how the descriptions built on each other in a way from Narrative to Colorful to Technical.

The point of this demo is to showcase the sort of data my toolkit can make available. Whether you are an individual like me who wants more access to my pictures with different descriptions, or you want longer descriptions for other purposes, this is an example of what my toolkit makes possible.

This is not the one-off random describe this picture type of system. There are hundreds of those. This is the I want permanent descriptions at scale type of system.

Feedback I’m love to have. First off, does the web page look reasonable and free from glaring problems? Do the concepts of what info you can have from my toolkit make sense from this demo? If not, what would help?

One very interesting challenge. AI vision models are in my experience not great at generating alt text. I tried a range of prompts to get them to do so. In the end, the alt text (not my longer descriptions) was created by taking the Narrative prompts created by AI and running those through AI again asking for alt text to be created. You can see an example of this in action by using the Image Browser and choosing to show the alt text visibly. Note, choosing this mode with a screen reader will result in alt text reading twice–once as alt text on the images and once as the visible version of the alt text. I debated what to do about this situation and, so far, opted to turn off the visible display of alt text on page load. I do want people to see the alt text on demand because it is part of the overall system.

The toolkit allows for this sort of data gathering and gallery creation to be done all automatically. Just point the tools at a collection of images and an AI provider and you can choose how the info is shown.

Again, visit http://www.kellford.com/idtdemo for the gallery. Visit https://github.com/kellylford/Image-Description-Toolkit/releases/tag/v3.0.1 for the toolkit itself and https://theideaplace.net/image-description-toolkit-3-0-available/ for my latest blog post on the toolkit.

Leave a Comment

Image Description Toolkit 3.0 Available

I have a vastly updated version of my Image Description Toolkit (IDT) available. The 3.0 release builds on the command line workflow tools I released earlier with a guided workflow creation system, analysis tools for combining descriptions, a range of performance statistics on your descriptions and tools to review content from various AI models and prompts.

The IDT also includes several other tools for working with image descriptions. A results viewer allows you to browse results, monitor workflows as they happen, copy descriptions and images.

If you want to focus on detailed descriptions for individual images, the Image Describer tool, allows you to load a directory of images, and easily request descriptions for individual images and do so using multiple providers and prompts and save all your work for future use.

A Prompt Editor allows you to create and edit the prompts used to guide AI descriptions for all the tools in the IDT and configure defaults.

In addition to Ollama, which powered earlier versions of the IDT, the IDT now includes support for multiple AI models from both OpenAI and Anthropic if you provide your own API key.

A comprehensive User Guide is available for the various tools in the IDT.

Whether you want detailed descriptions for one or one thousand images, the IDT has a tool for you. Grab IDT3.zip, extract the files to your computer and run install_idt. Be sure to install Ollama and or get API keys for OpenAI or Anthropic and configure your AI models. Then open a command prompt and run:

idt guideme to generate your first descriptions.

15 Comments

RSS Quick, A Basic RSS Reader for Windows 1.0 Available

I’ve been dabbling further with AI-driven development and have another app for exploration. This time it is a basic RSS Reader for Windows I’m calling RSS Quick. Get the full details and program from Release RSS Quick 1.0 – Initial Release · kellylford/rssquick or my alternative download location.

The name RSS Quick reflects the intent of the app to be a simple and fast way to quickly browse RSS feeds. The program does not handle feed management at this time but will allow you to import an existing OPML file and quickly browse the feeds. RSS Quick includes a default OPML file named RSS.OPML that will be put in the default folder where you unzip the software package. It has dozens of feeds from a wide range of sources already included. Even if you don’t use the app, the OPML file may be handy as another source of feeds.

To use RSS Quick, you need to download the .ZIP file for your computer. In most cases this will be the X64 version. If you are using ARM hardware with Windows, you’ll want the ARM version. Extract all the files to any location on your computer and run RSSQuick.EXE. The program will load the default OPML file that has been included. If you do not have the necessary version of .NET, you will be prompted to download that first.

You can learn more about RSS Quick from the readme for the program. Give it a try and consider getting involved or submitting issues on the GitHub page.

RSS Quick is one of three projects I have available. I also have my Sports Scores app and an Image Description Toolkit. available. All projects can also be downloaded from my separate release archive.

Leave a Comment