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

core: Add compatibility flags #18974

Open
wants to merge 8 commits into
base: master
Choose a base branch
from

Conversation

kjarosh
Copy link
Member

@kjarosh kjarosh commented Dec 15, 2024

Compatibility flags help configure Ruffle by enabling and disabling specific behaviors.

They are meant to be used for instance in the following situations.

  1. They fix bugs in Flash Player that make some content misbehave. Note that in general we don't fix bugs in Flash Player -- we are bug compatible. However, there are examples where a bug is so sneaky, some content could have been created with an assumption that the bug doesn't exist and the bug affects it.

  2. They genuinely improve the experience of using Ruffle at the cost of lowering compatibility with Flash Player.

  3. They improve the "perceived" compatibility at the cost of the "real" compatibility. For instance, something does not work in Flash Player, and we make it work.

The main goal of this PR is to prepare for adding new flags in the future. This way we'll have a simple interface to configure such behaviors in the future. The most notable example would be #18856 where we could add a compatibility flag which enables font fall back again for content that is not yet fully working in Ruffle due to various bugs.

Compatibility flags are used to configure behavior
related to compatibility with Flash Player.

The first compatibility flag added is tab_skip.
They are available under the --flags option.
This option configures compatibility flags applied during the test.
This flag configures the behavior of skipping some objects when tabbing.
Flash Player skips those objects by default, however it's possible that
some content is not aware of this (e.g. when objects are placed on a grid),
and it results in reduced accessibility, as users cannot tab some objects.
This test verifies the behavior of tab_skip flag.
@kjarosh kjarosh added A-core Area: Core player, where no other category fits T-feature Type: New Feature (that Flash doesn't have) labels Dec 15, 2024
@n0samu
Copy link
Member

n0samu commented Dec 15, 2024

As a matter of UX, we should definitely give the right column a more descriptive name like "FP default" so people understand what it means (and I guess a tooltip with further explanation could be good too)

@kjarosh
Copy link
Member Author

kjarosh commented Dec 15, 2024

Forgot to add a screenshot!

The "FP" label does have a tooltip, I decided to keep the name short in order not to waste horizontal space (it has only a checkbox).

@kjarosh kjarosh added the waiting-on-review Waiting on review from a Ruffle team member label Dec 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-core Area: Core player, where no other category fits T-feature Type: New Feature (that Flash doesn't have) waiting-on-review Waiting on review from a Ruffle team member
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants