You are spot on here, this has to do with the tabs being hidden when the page loads, which means the calls to Tableau to load the vizzes are not sent by the browser. I've seen this happen most commonly in accordion elements in Firefox, but I could see how it would also happen in this instance. I think your best solutions are the ones you already explored: forcing all tabs to load manually, or not using tabs.
Have you considered using the tabs function in Tableau directly, instead of embedding separately on tabs? If you had the dashboards as tabs in a single Tableau workbook, you could publish that workbook and use the built in tabs. Tableau handles all of the loading in this instance.
First of all thanks for responding. Much appreciated!
The problem is that the solutions are not solutions.
1. We are currently doing a force refresh whenever a user clicks on a new tab. Our dashboards normally take 10+ seconds to load so when users tab over, they are forced to sit through another loading screen. This has led to many complaints.
2. We actually started with Tableau tabs but the business has stated they do not want those tabs and that we are required to break them out and adopt the style that you see above.
Can you think of any other ways to try and resolve this? It seems like some calls are indeed sent since the page loads but not all elements come back.
Do you know if there is a way to escalate to Tableau Engineering? I don't see other libraries having this issue so it really seems like a Tableau related problem.
You're right, neither is a particularly elegant solution. If you're required to go forward with this design, I recommend opening a case with Tableau Technical Support. They can review network traces and your Tableau Server logs to determine which calls are reaching Tableau Server and what is being returned, and they can escalate to the Development team for further investigation.