Overview
Do you want to find crossovers, but every fic in your fandom has multiple fandom tags that AO3 doesn't know are the same? The true crossover filter is here for you!
This user script allows you to select which fandoms you consider the same, and will hide "crossovers" that contain only those fandoms.
Thank you so much to Sigurd for the massive amount of javascript help he provided.
Further Explanations
Q: Why isn't the user script showing up? I installed it, but nothing has changed.
A: You need to go to the page for a tag, and filter "Show only crossovers". A button will appear only then, to avoid interference with browsing the rest of the time. And because using the built-in filter for crossovers should reduce the number of fics this has to hide.
Q: Can you explain the use case of this script?
A: Suppose you want to read crossovers with Ghost Soup, and don't have a specific second fandom in mind. You go to the Ghost Soup Infidel Blue tag, and filter "Show only crossovers". However, when you look through the results, most of them are tagged "Ghost Soup Infidel Blue, Ghost Soup Infidel Red," and there's no other fandom. Since those are two different fandom tags, AO3 registers it as a crossover, even if you think those are the same fandom and not really crossovers.
This script lets you mark that you consider Ghost Soup Infidel Red to be the same fandom. While it cannot actually change the search results, it will then hide any works from the page that have only those two fandom tags, and only show works with a different tag.
Q: Last time I started with Ghost Soup Infidel Blue, and marked Ghost Soup Infidel Red as the same fandom. But now when I start from Ghost Soup Infidel Red, it doesn't remember that Blue is the same?
A: The list of "same fandoms" is keyed to the tag you started from. If you start browsing from a different tag (like the anime instead of the manga, or from a specific character's tag), then you'll have to re-enter your list of fandoms.
Q: All my settings were lost!
A: They're stored in your browser's local storage, so they may be deleted when you clear browser data.
Q: I set it up, but fics that aren't really crossovers are showing up anyway?
A: There's various reasons this could happen, so I'll take my best guess. It goes by exact string matching, so if someone entered the tag as "Ghost Soup Blue", and AO3 synned the tag to "Ghost Soup Infidel Blue", it'll show up in the results but the script will detect that tag as being a different fandom. Same for subtags like "Ghost Soup Infidel Blue (reboot)"—as a subtag of Ghost Soup Infidel Blue, it will show up in the results, but you'll have to make sure you've checked it off or added it to the list of "same fandoms".
Q: Will you add X feature?
A: Maybe? Ask and I'll think about whether it's tenable and something I think fits with the script. I'm thinking of adding a way to hide true crossovers, because these fandoms also face the inverse problem: by excluding crossovers, you exclude basically all the fic. Should that go in this extension or a different one?