This is similar to What element should have the focus after a search?, but not the same case.

I'm building a chatbot with Flutter (mobile). This is the flow:

  1. Bot asks a question.
  2. User is presented with several fixed options (like radio buttons)
  3. User chooses one of them
  4. String equivalent answer is added to the chat log
  5. Options disappear, since they made sense only for question in point 1
  6. Bot asks new question
  7. User is presented with new options.

I want to make this accessible. I've taken a look at role log and it fits great. I'm using a similar equivalent in Flutter and it handles new messages perfectly. The problem is that, since options disappear with each answer, focus disappears too: when the user "tabs" to the next element, focus goes back to the top of the app, and she'd need to scroll back all the list of messages (or find her way with an equivalent but also suboptimal manner) to get to the end, every time.

I can force the focus moving to the last message, but that would clash with the message reading, since that won't be "polite" (ARIA sense).

For now, I'm not using the aria-live feature (so the app doesn't read new messages) and I'm moving the focus manually, only after the user submits the info and only to the first unread message. It works, but I find that solution kind of hacky.

What should be the best way to handle this?

  • Is this question about overcoming a Flutter programming constraint, to realize you desired design? In that case, I think SO may provide better answers.
    – essbee
    Commented Jan 27, 2023 at 8:57
  • the question needs re-phrasing or an image. I am not clear if the options appear next to a message log in a two-panel fashion or if everything is a single log with options appearing and disappearing in between.
    – user30478
    Commented Feb 16 at 8:59

1 Answer 1


What Element to Focus After User Input on a Chatbot? What Element Should Have the Focus After a Search?

Don’t Forget to Consider the Needs of Your Audience/User. Create Transferable Transcripts that could be used to document the needed data. You could also use Natural Language Processing. In addition, it would be helpful to create and check your program with Flow Charts.

Bot Asks Questions: What is the Purpose of Your Chatbot? What Type of Questions Do You Want Your Bot to Ask the Users/Audience? Objectively, create questions that specifically includes Yes/No Type of Answers. At the end of the Questionnaire/Survey, allow the user to input a free response, more than a few sentences.

User is Presented with Several Fixed Options (Like Radio Buttons): Assuming that you are writing code with programming languages like VB.NET and/or Visual Basic, I suggest that you apply specific features to highlight the question. Make sure that the text messages and labels are correct and correspond with the code. This will put the question you want to ask in focus.

User Chooses One of Them: Provide the user/audience information about each question that you intend to ask them. Allow the user to provide a free response in each question box. If unsure, they should be able to access communication with you.

Options Disappear, Since They Made Sense Only for Questions in Point 01: I highly suggest and advise you type your question on a separate document such as Word Doc or Pages. Check the code on your IDE and/or Text. Make sure to backup the specific data when you write the questions and collect the target information. Import your questions and install a backup document to retrieve the questions asked.

Bot Asks New Questions: Create a Conversation Diagram/Dialogue. Write your script in organized and charted fragments. Include what you would say in person.

These are my Suggestions for Your Chatbot:

Greeting: Have the chatbot say something such as “Good Evening” or Good Morning”. Say something like, “Good Morning, I am John Smith, I am running a research panel that will ask you questions about what you eat for breakfast”.

Asking: Specifically, create questions that will fit all demographics of your intended users/audience. Allow the user to send you an individual message if he/she does not know how to answer the question. This will efficiently help you collect the information needed on how to ask the question better. Informing the User/Audience: Notify the user/audience that the chatbot is going to collect the information provided. Provide the user with an option to contact the developer of the chatbot.

Sources Cited:

SAS Natural Language Processing: https://www.sas.com/en_us/insights/analytics/what-is-natural-language-processing-nlp.html

What are Good User Utterances for Your Chatbot? Written by Cobus Greyling: https://cobusgreyling.medium.com/what-are-good-user-utterances-for-your-chatbot-43d5e6524408

4 Things You Should Know About Chatbots: https://blog.chatteron.io/4-important-things-you-should-know-about-chatbots-66b41ee25c41 Xeim E Consultancy Focus, Integration, and Bias with Chatbots in Marketing: https://econsultancy.com/strategic-challenges-marketing-chatbots/

  • +1 a pretty comprehensive answer. Have you done a bit of chatbot design in your current or previous work?
    – Michael Lai
    Commented Feb 15, 2021 at 1:23
  • Thanks for your answer, but it has nothing to do with my question. Maybe it was not written properly, but I was asking specifically about focus management, nothing more. We are already using natural language processing and applying your other suggestions. "Assuming that you are writing code with programming languages like VB.NET and/or Visual Basic" I state that I'm using Flutter in my question.
    – Cmorales
    Commented Feb 15, 2021 at 12:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.