Forum Replies Created

Viewing 15 replies - 1 through 15 (of 23 total)
  • Thread Starter Christoph Letmaier

    (@chrisiwien)

    Dear Takayuki,

    deleting the div “screen-reader-response” lead to an JavaScript error in the console. I wrapped the remove() method in a setTimeout statement, so remove() is executed, after the Contact Form 7 JavaScript Code is executed (and the DOM is changed).

    Is there a more elegant way to do this? Is there another way to intecept the Contact Form 7 JavaScript code which is update-save?

    EDIT: deleting the div “screen-reader-response” is not an option, because this creates errors with the Contact Form 7 JavaScript code. So I but aria-hidden=”true” to the div “screen-reader-response” and the jump links inside this div. Also, i set on each jump link tabindex=”-1″, so this link are not reachable via tabulator navigation.

    Regards

    Christoph

    Thread Starter Christoph Letmaier

    (@chrisiwien)

    Dear Takayuki,

    FYI: My accessibility expert says that the fact that the jump links (in the div class=”screen-reader-response”) are not visible when the focus is on a jump link is not perfect, but can be considered negligible.

    If the input values are incorrect, the focus should be on the first incorrect input field. Currently the focus stays after validation on the submit button.

    The hidden div element “screen-reader-response” is not my preferred solution. I will delete this div via JavaScript if the “wpcf7invalid” listener is triggered and assign aria-describedby value of each invalid field as the ID to the adjacent error message spans. And I will remove the aria-hidden attribute of the visible error message text.

    Regards

    Christoph

    Thread Starter Christoph Letmaier

    (@chrisiwien)

    Dear Takayuki,

    thanks for the link.

    I have found out, the the “hidden links” i mentioned are acctually inside a hidden error messages div.

    I have to mention, that the way i proposed in my original post is wrong, because Contact Form 7 will then set the names of the input fields to eg. “id:name”. So i have to stick with the form syntax in the link you provided.

    My intention was to prevent hidden elements, which are only visible for screen readers. In my opinion this doesn’t make sense. To give visible elements proper aria attributes makes much more sense for me.

    Imagine a person in a wheelchair who can read very well but relies on tab navigation (no screen reader is used). If a form error message appears, and this person navigates up using SHIFT+Tab, the invisible links in the error DIV are also marked, but remain invisible. I’m wondering if this is correct.

    So far, my contact says, the way you create the hidden error messages DIV is also correct in terms of accessibility.

    Please leave this post open for now, perhaps i get more infos form my accessibility expert, which I want to share.

    Thread Starter Christoph Letmaier

    (@chrisiwien)

    Hey Shameem,

    thanks for reply. The links are looking good. I will try the plugin Multi-Step Checkout by Silkypress, i think adding some GDPR stuff will be easier with this documentations.

    I appreciate the support of the WooCommerce-Team. Thanks a lot!

    🙂

    Thread Starter Christoph Letmaier

    (@chrisiwien)

    Hey Stef,

    I want to share some information from my in-depth testing with the plugins you proposed:

    WooCommerce Multi-Step Checkout by SilkyPress:
    not bad, but if someone enters an invalid shipping address, then reenter a valid shipping address, the “wrong delivery address” warning doesn’t disappear

    WooCommerce MultiStep Checkout Wizard:
    seems not to be on the WordPress plugin repository, only on WooCommerce MultiStep Checkout Wizard by Kole_Roy | CodeCanyon. LivePreview doesn’t work “Sorry, your session has expired.”.

    CheckoutWC:
    makes an completly custom checkout page with own design, look not bad, but has not so nice JavaScript loading animations, can’t turn that off

    YITH WooCommerce Multi-step Checkout:
    is not maintained anymore, plugin page is closed (https://ww.wp.xz.cn/plugins/yith-woocommerce-multi-step-checkout/)

    CartFlows:
    way to much, as far as i tested, you have to build the checkout page frome the scratch in an template builder.

    I assume, the plugin developers do basically this, what i was doing with my review page programming. I don’t want the checkout process on an extra page, because the design differs greatly from the shop page design.

    So, i have the choice between talking to the plugin developers or go on with my custom programming, I assume the effort will be nearly equal.

    I understand, that you can’t tell me more in the forum about WooCommerce in-depth coding. Can you tell me perhaps, if an offical documenation of WooCommerce exists, where i can find more about how WooCommerce use hooks and JavaScript on the checkout page?

    Thread Starter Christoph Letmaier

    (@chrisiwien)

    OMG, Stef!! Thanks for the valueable answer in lightspeed.

    🙂

    I‘ve done a quick review of Multi-Step Checkout for WooCommerce, it seems perfectly suitable for my needs.

    Guess, I‘ve asked the question in a wrong way… i searched for „review page“, but I should have looked for „multi-step checkout“…

    I will test this plugin later.

    Thanks a lot for your help, i think this plugin is able to solve my problem.

    Thread Starter Christoph Letmaier

    (@chrisiwien)

    Hey Stef, thanks for your reply.

    I can say, the workaround, similar to the description in the link i have posted, works. I produce a hidden fake error message, and then redirect (in error.php) to my custom review page, where i integrate hooks from the WooCommerce file checkout.php. My review page is, so to speak, a „copy“ of checkout.php, with other contents.

    I know the „review section“ very well, but, i want this info, combined with the customer data, on an extra page. I want a splitted checkout process, so the user first fills in his personal data, on the second page, he can review his order and his personal data (and select a payment method). Out-of-the-box, all steps in WooCommerce are on a single page.

    My customer sells highly configurable products, not products with choosing only color and size. So, we want, that the customer can read again (before buying), what he/she is buying, with all details. Stuffing input fields and the order review on a single page could be error prone. We think it is better, if the customer can double check his/her entries/order on an extra review page.

    Out-of-the-box, in WooCommerce the order/review process is handled by checkout.php. There is no (easy and update-safe) workflow described, to split the order process steps: data entry, review, select payment method, place order. I can use template overrides only with php files, but not with JavaScript code – which is used in processing the functions of checkout.php.

    I can develop the workaround further on my own, but it would be nice, if WooCommerce can support me doing this. So far, i rely on a trial and error method, testing, if everythink works, if i change/alter the order of the WooCommerce checkout.php hook calls. This is a rather painstaking process.

    Consider the fact, that other shop systems have integrated an extra review page out-of-the-box – because it makes sense, is user friendly, and prevent perhaps false user entries. See the checkout process of Amazon – there is a (from user entries) seperated review page.

    So, maybe you can help me with the correct order of the WooCommerce hooks. It would be fine, if Automattic develops a paid extra plugin for WooCommerce, which enables a separated review page.

    Thread Starter Christoph Letmaier

    (@chrisiwien)

    Thanks for your answer.

    I looked around on my local installation (xampp), and find in the Apache error log this line: “child process xxx exited with status 3221225477” – that error seems to be related to running out of ressources.

    I rised the value of “ThreadsPerChild” from 150 to 550 in apache/conf/extra/httpd-mpm.conf, and the value of “ThreadStackSize” to 8388608 (Section “<IfModule mpm_winnt_module>”) and restarted the Apache server.

    Locally that helped, now WordPress 6.5 and WooCommerce 8.7 are working, as far as I see.

    The problem occur on Windows Machines with Apache Webserver, i use xampp locally, online Windows Server 2019 and 2022 with Apache for Windows, installed manually. I will try this solution later on the online servers.

    Perhaps you place a note on the WooCommerce server requirement page which address this (Windows/Apache related?) problem.

    If further troubles arise, i will contact WooCommerce-Support as you proposed.

    Thread Starter Christoph Letmaier

    (@chrisiwien)

    @seank123: it didn’t say it works on the local server. On the local server I run the downgraded configuration that works.

    The problem appeared suddenly, i have nothing changed, so i assume the problem has to do with very new versions of WordPress/WooCommerce and automatic update.

    Also, I run another live server with the exact same configuration, the problem occured there likewise and at the same time.

    Thread Starter Christoph Letmaier

    (@chrisiwien)

    Thank you for your answer, it works this way.

    Thread Starter Christoph Letmaier

    (@chrisiwien)

    Very well, but the user account has configured the option that the admin bar doesn’t show up on frontend, so your solution will not work in this case.

    Thread Starter Christoph Letmaier

    (@chrisiwien)

    Thx for the answer!

    Further more, this behaviour of Gutenberg throw errors in the W3C validator (https://validator.w3.org/):
    Error: Element style not allowed as child of element body in this context. (Suppressing further errors from this subtree.)

    Thread Starter Christoph Letmaier

    (@chrisiwien)

    @mostafas1990: Unfortunately I don’t have time for testing right now.

    @danipmd: from the WP Rocket support team I got this proposed debug workflow:

    1. On the Media tab, uncheck LazyLoad
    2. On the File Optimization tab, uncheck each option, one at a time.
    3. Each time you deactivate an option, check your site in a private/incognito browser window where you’re not logged in as a WordPress user.
    4. Reload the page a couple of times to make sure it’s cached. When the issue resolves, you know it was caused by the last option you disabled.
    5. Once you know the option that causes it, consult this guide for possible fixes:http://docs.wp-rocket.me/article/19-resolving-issues-with-file-optimization

    I did not try that, maybe it helps you.

    This seems to be a Gutenberg bug. I am facing the same problem from time to time.

    “Workaround”: log out and close the browser window. Be sure to check that no other browser instances are running (Windows: via the task manager).

    Restart the browser, re-login and the overtype mode is disabled again.

    Since Gutenberg seems to be a heavy JavaScript framework it doesn’t like if your are too quick with typing an clicking… 🙂

    There is obviously some sort of race condition in the code.

    Keep in mind if your page/post has many blocks Gutenberg gets slower and slower, this could be also causing the hassle.

Viewing 15 replies - 1 through 15 (of 23 total)