Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve UX of TTS Message option #134

Open
pilot51 opened this issue Jul 5, 2024 · 3 comments
Open

Improve UX of TTS Message option #134

pilot51 opened this issue Jul 5, 2024 · 3 comments
Assignees

Comments

@pilot51
Copy link
Owner

pilot51 commented Jul 5, 2024

A Google Play review mentioned that the TTS Message option is a little convoluted. I agree it could be better.

Currently my idea, as detailed below, is to use tags instead of plain text for each message component.

  • Improve descriptions of the components.
  • Basic and advanced modes:
    • Basic: Checkbox list of components that can be reordered either by drag-and-drop or arrow buttons. They are separated by newline in the TTS text. (Thanks @Robio!)
    • Advanced: Text field as it is now but with tags as described below.
      • Short text in the tag identifies which component it is in a more self-explanatory way.
      • Each tag is listed and clicking on a tag in the list adds it to the text field at the cursor position.
      • Drag-and-drop to move tags around in the text field or to add to a specific position from the list.
      • A tag is removed when it is either deleted by the keyboard or pulled out of the text field.
      • The tag's text code (e.g. #M) is converted to the tag on the fly. The text codes should still be shown in the description or tag list for users who prefer to type.
  • Allow saving a format to a list of presets. This would be especially useful now that per-app settings exists.

This may change as I give it more thought and find out how difficult it is to implement.

@pilot51 pilot51 self-assigned this Jul 5, 2024
@Robio
Copy link

Robio commented Jul 5, 2024

Hi @pilot51, I'm the reviewer who inspired this ticket. :) This sounds pretty good, although I'm not entirely clear on your description. But here's a thought: How about a list of checkboxes to select kinds of content to include, with grippers to drag those items into the order the user prefers (which is what I assume rearranging the #tags does in the current version):

≡ ▣ App Name
≡ ▣ Ticker
≡ ▣ Subtext
≡ ▣ Content title
≡ ▣ Content message
≡ ▣ Content Info
≡ ▣ Big content title
≡ ▣ Big content summary
≡ ▣ Big content text
≡ ▣ Text lines

BTW, I'm entirely unclear on what most of these descriptions mean. App Title (I've changed to App Name for clarity) I understand. Content Title and Content Message I figured out from using the Test feature in Settings. But I think they all need either a description or names that are more self-explanatory to end-users, like...

  • App Name (currently #A)
  • Notification headline (currently #C)
  • Notification message (currently #M)
  • Time stamp (currently #T — I think)

As for the rest, I don't have any idea what they mean. :)

@pilot51
Copy link
Owner Author

pilot51 commented Jul 5, 2024

Aside from being very easy for me to implement, the main reason it's a text field instead of just an order is because punctuation causes TTS to sound different and I don't want to force anything on the users.

As you can see by the current and old defaults shown in the description, I couldn't settle on how to separate the components to prevent TTS from making it all one sentence. Originally #A: #T, then #A. #C. #M., and now newlines instead of periods.

This also allows users to do things such as Notification from #A with title #C which, with the test notification, would become "Notification from Voice Notify with title Content Title".

I like the idea of essentially making features "open source" for regular users to change however they want even at an advanced level, especially if it reduces my workload as a developer. Though now that I think of it, that makes a case for basic and advanced modes for the setting, where basic would be something like your suggestion.

As for the descriptions, I agree they aren't very clear and could use improvement. Some of them I don't totally understand myself. I carried them over mostly verbatim from the names of Android's notification APIs, and the documentation doesn't help much. Some are shown differently between versions of Android, so I can't necessarily rely on my experience to form an accurate detailed description.

#T is currently the ticker message, which used to be shown briefly in the status bar the moment a notification was posted, but on recent versions of Android it isn't shown anywhere.
I've considered adding a format option for timestamp, but that opens a whole other can of worms with how to format the timestamp itself and there isn't really any demand to justify the effort.

@Robio
Copy link

Robio commented Oct 19, 2024

Just getting back to this. Having just recently figured out how much difference can be made for TTS by using punctuation and line breaks, I see where you're coming from regarding flexibility.

This would probably be a lot more work to implement, but what comes to mind two tiers of settings for the spoken content:

  1. User-friendly: My suggestion above (checkboxes and drag handles), which would automatically include a short pause at the end of each statement — [App name] ... [content title] ... [content message]...
  2. Advanced: The current functionality — #A, #C, #M

User-friendly could be the default, with an "Advanced" button at the bottom. When clicked the "Advanced" screen could have a little explainer, like "More control over how text is ready, using commas, periods and line breaks" then the chart of tags.

/just spitballing :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants