I’d like to know about techniques and good practices for CTA (call to action) for blind people.
There are a few things you could do, depending on the circumstances.
When the page is loaded, depending on where the initial focus is, you could have extra text associated with the first object (
aria-describedby) that informs the screen reader what the CTA is.
You could have a visually hidden container that is a live region (eg
<div class='sr-only' aria-live='polite'>) that is updated with text when the page loads. (Text in a live region is announced by a screen reader when the text changes.)
Whatever text you associate with the first focusable object or the live region should include the name of the object you're trying to emphasize (usually the label of a button or link) as well as the 'type' of object it is (button, link, checkbox, etc). The type is very important because as a screen reader user, I can quickly jump to objects of that type. ('B' takes me to the next button, 'U' takes me to the next unvisited link, 'X' takes me to the next checkbox, 'T' takes me to the next table, etc). I can also display a dialog with a list of objects of that type. For example, I can see all the buttons on the page or all the links on the page.
So specifying the type of the object is important. The CTA message might say "Be sure to select the Register Now button".
(I tried to keep implementation details out of my response but I needed to specify a few to make my point. If you have further questions on how to implement something like this, post on stackoverflow and make sure you add the "accessibility" tag to the question like you did with this one. That way I'll see it.)
This is actually a really good question, and I hope that one of the accessibility specialist out there will also give you an answer on this.
My guess is that when you have users that cannot rely on visual cues, there is less flexibility in the way you can design the content to prioritize certain actions over others when the context or information required to make that decision has to be provided in a linear sequence/flow.
So that means that while you can theoretically make a CTA 'jump' the queue by prioritizing it over other elements on the screen (e.g. play audio on CTA interactions first) but it would probably not have enough context to be useful to the user.
Perhaps there are more advanced techniques to building webpages that are more flexible, but I think that would also push the boundaries of making the page accessible/usable. I feel like it would require the pages to be designed in a different way, such as reducing the amount of content on a page and providing more context during the transition of a page to allow people to be able to skip to the CTA when it makes sense to do so.