Write the questions people actually ask
The value of an FAQ is not the markup. It is that the page answers the objection someone has before they act — the doubt that otherwise sends them back to search.
Good questions come from support tickets, sales calls and the queries that already bring people to the page. Invented questions read as invented, and every one of them dilutes the ones that matter.
The visibility rule
Structured data must describe what a visitor sees. An FAQPage block listing questions absent from the rendered page is grounds for a manual action, and it is one of the easier violations for Google to detect automatically.
If the FAQ is rendered by JavaScript that crawlers do not execute, the markup is describing content that, as far as they are concerned, is not there.
Expectations, honestly
FAQ rich results were widely shown until Google narrowed them to a small set of site types. If you are adding this expecting an expanded result, that is unlikely now. Add it because the questions belong on the page — and let the markup be a side effect rather than the reason.
Questions
Do FAQ rich results still appear?+
Far less than they used to. Google restricted them to government and health sites for most queries, so for an ordinary site the expanded accordion in results is unlikely. The markup still helps a crawler understand the page, but do not add an FAQ section purely to get it.
Must the questions be visible on the page?+
Yes, and this is enforced. Marking up questions that appear nowhere in the rendered content is a manual-action risk. The markup describes the page; it does not add to it.
Can I use HTML in an answer?+
A limited set — links, lists and basic formatting are permitted in the answer text. Anything more is stripped. Keep answers short enough that formatting is not needed.
How many questions should there be?+
As many as the page genuinely answers. Padding an FAQ to ten questions because a longer list feels more thorough produces questions nobody asked, which is obvious to a reader and pointless to a crawler.